griffin-stewieの日記

2007-02-07

[][][]ちょっと改良してみた

  • 変更点

タグ付け対象をプレイリスト単位ではなく、選択トラックに変更。


前回のはカレントプレイリスト内のトラックに対してタグ付けしていったのですが、

この方法だとライブラリを表示してるときにまちがって実行してしまうと悲惨なことになってしまう。

あと、数曲だけタグ付けしたいって時にわざわざプレイリストを作成しないといけないのが面倒でした。

今回の改良でそのあたりの不便さが解消されているはずです。


  • 苦労したところ


「選択している曲に対して」ということをやるだけでかなりググりまくりました(^^ゞ

RDocに selection() OSA::ITunes::Application っていうのがあったのですが

戻り値がよくわからなかったんです。

で見つけました。

no title




selected_tracks = itunes.selection.get

これで選択トラック配列で返ってきますので煮るなり焼くなりと。


  • 今後の課題


iTunesスクリプトメニューから実行できるようにしたい。

めしにrbファイルのままぶち込んでみたが表示すらされませんでした。orz

AutomatorUNIXコマンドを実行するコマンド部分にターミナルに打ち込んでた文字をコピペしてみたけどエラーorz

だれかいい方法しりませんか?


#!/usr/bin/env ruby
#  SortByLanguage_iTunes_Selection
#  Created by Stewie on 2007-02-05.
begin require 'rubygems'; rescue LoadError; end
$KCODE = "UTF8"
require 'rbosa'
OSA.utf8_strings = true

itunes = OSA.app('iTunes')

#選択されているトラックを対象とする
selected_tracks = itunes.selection.get

selected_tracks.each{ |track|
  pre_comment = track.comment()
  puts "曲名「#{track.name}"
  puts "アーティスト名「#{track.artist}"

  if /\[Japanese\]|\[English\]/ =~ pre_comment
    p "分類済み"
   p pre_comment
  else
    p "未分類"
    kashi = track.lyrics()
    if kashi.length == 0
     p "歌詞がありません"
    elsif
      count = 0
      kashi.scan(/[a-zA-Z0-9\']/) {
        count += 1
      }

      puts "歌詞サイズ #{kashi.length}"
      puts "アルファベットにマッチ #{count}"
      par = (count.to_f / kashi.length.to_f)*100.to_f
      p "#{par.round}%"
      if par.round >= 65
        track.comment = "[English]" +"\r\n" +pre_comment
        p "洋楽に設定"
      elsif
        track.comment = "[Japanese]" +"\r\n" + pre_comment
        p "邦楽に設定"
      end
    end
  end
}
プロフィール

griffin-stewie

griffin-stewie

遂にプログラマの端くれに。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には一切関係ありません。