daha önceki 'Lyricler falan' postumda yazdığım lyrics reader zıvırını az daha geliştirdim ve artık dbus kullanarak rhythmbox'ta çalan şarkıyla etkileşiyor. Bu arada ruby için dbus kütüphanesi yok gibi birşey, aman dikkat. dbus kütüphanesi yok gibi ama kullanımı oldukça rahat. Burada önemli olan, kendi yazdığım minik şeyleri pratikte pek kullanmam. Ancak code generation falan tarzı şeyler olur, öyle. Ama bu benim gibi rhythmbox'a plugin yüklemeye üşenen üşengeç bir insan için oldukça kullanışlı gözüküyor. Ahanda kaynak kodu.
Bu arada, kodun 42 satır uzunluğunda olduğuna dikkat çekerim(sondaki boş satır sayılmaz, bizden değildir).
lyricwiki etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
lyricwiki etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
11 Nisan 2009 Cumartesi
4 Nisan 2009 Cumartesi
Lyricler falan
Kişilikler: Ben, Birand
Zaman: dün bi ara
Mekan: ben evdeyim, birand kendi evinde. iletişim msn ile sağlanmakta(birand'ı da bir türlü açık bi protokole geçiremedim ya)
Olay: birand'ın lyricwiki'den şarkı sözü arayıp bulduğu sözleri mp3 dosyasının id3 taglarına kaydeden bir programdan etkilenip "yok artık" demesi. akabinde benim gülmem ve "yok artık buna da yok artık denir mi çok basit bişey" demem.
Sonuç: aşağıda görülen ruby ile yazılmış minik zımbırtıyı saçmalamam
Zaman: dün bi ara
Mekan: ben evdeyim, birand kendi evinde. iletişim msn ile sağlanmakta(birand'ı da bir türlü açık bi protokole geçiremedim ya)
Olay: birand'ın lyricwiki'den şarkı sözü arayıp bulduğu sözleri mp3 dosyasının id3 taglarına kaydeden bir programdan etkilenip "yok artık" demesi. akabinde benim gülmem ve "yok artık buna da yok artık denir mi çok basit bişey" demem.
Sonuç: aşağıda görülen ruby ile yazılmış minik zımbırtıyı saçmalamam
require 'rubygems'
require 'open-uri'
require 'cgi'
require 'hpricot'
require 'id3lib'
usage = "lyrics.rb filename"
unless ARGV.length == 1
puts usage
exit
end
def lyrics(title,artist)
file = Hpricot(open("http://lyricwiki.org/#{artist}:#{title}"))
div = (file/".lyricbox")[0]
begin
div.innerHTML.gsub(/\
/,"\n").gsub(/<(.|\n)*?>/,"")
rescue
puts "No lyrics found"
nil
end
end
def escape x
CGI.escape(x).gsub(/\+(\w)/){|m| "_" + m[1].chr.upcase}.sub(/(\w)/){|m| m.upcase}
end
tag = ID3Lib::Tag.new(ARGV[0])
artist,title = escape(tag.artist), escape(tag.title)
ly = lyrics title, artist
tag.lyrics = ly
tag.update!
Kaydol:
Kayıtlar (Atom)
