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

Instance Method Details

#list_musicsObject



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