- if page
- events = Array.new
- disp_events = Array.new
-
- # matches are:
- # 1. day 2. moth 3. year 4. url_who 5. who 6. url_where 7. where 8. how_many
- pre_events = page.scan(/<tr class="vevent\s+\w+\s+\S+?-(\d\d)-(\d\d)-(\d\d\d\d)\s*">.*?<a class="url summary" href="(\/event\/\d+)">(.*?)<\/a>.*?<a href="(\/venue\/\d+)">(.*?)<\/a>.*?<td class="attendance">(.*?)<\/td>\s+<\/tr>/m)
- debug pre_events.inspect
- pre_events.each { |day, month, year, url_who, who, url_where, where, how_many|
- date = Time.utc(year.to_i, month.to_i, day.to_i)
- url = LASTFM + url_who
- artist = who.ircify_html
- loc = where.ircify_html
- attendance = how_many.ircify_html
- events << LastFmEvent.new(url, date, artist, loc, attendance)
- }
- debug events.inspect
-
- events[0..2].each { |event|
- disp_events << "%s %s @ %s (%s) %s" % [event.date.strftime("%a %b, %d %Y"), event.artist, event.location, event.attendance, event.url]
- }
- m.reply disp_events.join(' | ')
- else
- m.reply "No events found in #{location}"
- return
- end
- rescue Exception => e
- m.reply "I had problems looking for events #{what.to_s}"
- error e.inspect
- debug e.backtrace.join("\n")
- debug page[0...10*1024] if page
- return
- end
- when :artist, :group
- artist = what.to_s
- page = nil
- begin