Module: Valanga::MusicSearch
- Included in:
- Client
- Defined in:
- lib/valanga/music_search.rb
Constant Summary collapse
- MUSIC_INDEX =
"http://p.eagate.573.jp/game/reflec/groovin/p/music/index.html"
Instance Method Summary collapse
- #list_musics ⇒ Object
- #music_image_url(music_name) ⇒ Object
- #musics_at(page: nil, sorttype: nil, sort: nil) ⇒ Object
- #search(music_name) ⇒ Object (also: #[], #find_music)
Instance Method Details
#list_musics ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/valanga/music_search.rb', line 5 def list_musics musics = [] page_sessions do |session| html = Nokogiri::HTML.parse(session.html) musics << html.css("#music_table1 td.music_jkimg a").map(&:text).map(&:strip) end musics.flatten end |
#music_image_url(music_name) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/valanga/music_search.rb', line 44 def music_image_url(music_name) if music_id = music_ids[music_name] return image_url(music_id) end page_sessions do |session| begin session.within("#music_table1") do on_click = session.find_link(music_name)['onClick'] music_id = $1 if on_click =~ /id=([\w%]+)/ music_ids[music_name] = music_id return image_url(music_id) end rescue Capybara::ElementNotFound # if link is not found, go next page. end end end |
#musics_at(page: nil, sorttype: nil, sort: nil) ⇒ Object
16 17 18 19 20 |
# File 'lib/valanga/music_search.rb', line 16 def musics_at(page: nil, sorttype: nil, sort: nil) session.visit(music_url(page: page, sorttype: sorttype, sort: sort)) html = Nokogiri::HTML.parse(session.html) html.css("#music_table1 td.music_jkimg a").map(&:text).map(&:strip) end |
#search(music_name) ⇒ Object Also known as: [], find_music
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/valanga/music_search.rb', line 22 def search(music_name) if music_id = music_ids[music_name] return create_music(music_id) end page_sessions do |session| begin session.within("#music_table1") do session.click_link(music_name) end music_ids[music_name] = music_id(session) return create_music(music_ids[music_name]) rescue Capybara::ElementNotFound # if link is not found, go next page. end end end |