iTunesのプレイリストの再生順トップ5を表示するスクリプト
RubyOSAのgemができたようなので試してみた。
#!/usr/bin/env ruby require 'rubygems' require 'rbosa' require 'kconv' $KCODE = 'u' itunes = OSA.app 'iTunes' current_playlist_tracks = itunes.current_playlist.tracks current_playlist_tracks\ .sort_by {|track| track.played_count }[-5, 5].reverse\ .each_with_index do |track, index| printf "%d位: %3d回 %s\n", index + 1, track.played_count, track.name.toutf8 end # 出力結果 1位: 39回 ダンデライオン 2位: 38回 オンリーロンリーグローリー 3位: 37回 sailing day 4位: 31回 グングニル 5位: 26回 跳べ
AppleScriptは書けないのでどちらで書くのが楽かはよくわからないです。Automatorとか使った方が楽かも。irbのメソッド補完がリファレンス代わりに使えるので超便利でした。
ところでsort_byを逆順で使いたい場合ってどうやるんですかね。sortしたものをreverseするのは効率が悪そう。sortを使えばできるけど、他の方法と比べて簡潔じゃないのが…。