birand etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
birand etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Nisan 2009 Cumartesi

Lyricler falan ikinci partcan

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).

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
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!