32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/lastfmbb.rb', line 32
def self.gen_bb(req, string)
xml = REXML::Document.new(string)
color = "#d51007"
items = 1
if (req.method == "user.getTopAlbums")
req.method = "album"
elsif (req.method == "user.getTopArtists")
req.method = "artist"
elsif (req.method == "user.getTopTracks")
req.method = "track"
else
$stderr.puts("Incorrect method.")
end
if (req.period == "7day")
req.period = "Last 7 days"
elsif (req.period == "1month")
req.period = "Last month"
elsif (req.period == "3month")
req.period = "Last 3 months"
elsif (req.period == "6month")
req.period = "Last 6 months"
elsif (req.period == "12month")
req.period = "Last year"
elsif (req.period == "overall")
req.period = "Overall"
else
$stderr.puts("Incorrect period.")
end
result="[align=center][size=11][color="+color+"][b]"+req.user.capitalize+"'s Top " +req.limit.to_s+" "+req.method.capitalize+"s ("+req.period.to_s+"):[/b][/color][/size][/align]"
xml.elements.each("*/top" + req.method + "s/" + req.method + "") { |e|
en_name = e.get_elements("name").first.text
playcount = e.get_elements("playcount").first.text
mbid = e.get_elements("mbid").first.text
url = e.get_elements("url").first.text
begin
image_l= e.get_elements("image")[2].text
rescue NomethododError => ex
image_l=""
end
if (req.method == "album")
aname = e.get_elements("artist/name").first.text
ambid = e.get_elements("artist/mbid").first.text
aurl = e.get_elements("artist/url").first.text
en = Album.new(en_name, playcount, mbid, url, image_l, aname, ambid, aurl)
elsif (req.method == "artist")
streamable = e.get_elements("streamable").first.text
en = Artist.new(en_name, playcount, mbid, url, image_l, streamable)
elsif (req.method == "track")
streamable = e.get_elements("streamable").first.text
aname = e.get_elements("artist/name").first.text
ambid = e.get_elements("artist/mbid").first.text
aurl = e.get_elements("artist/url").first.text
en = Track.new(en_name, playcount, mbid, url, image_l, streamable, aname, ambid, aurl)
end
result << "[quote][b]" + items.to_s + ".[/b] "
if (req.method == "album" || req.method == "track")
result << "[url=" + en.aurl + "]" + en.aname + "[/url] - [url=" + en.url + "][b]" + en.name + "[/b][/url] (" + en.playcount + ")[/quote][align=center][url=" + en.url + "][img]" + en.image + "[/img][/url][/align]\n"
elsif (req.method == "artist")
result << "[url=" + en.url + "]" + en.name + "[/url] (" + en.playcount + ")[/quote][align=center][url=" + en.url + "][img]" + en.image + "[/img][/url][/align]\n"
end
items += 1;
}
result << "[align=right]Generated on " + Date.today.to_s + "[/align]\n"
result
end
|