module Maimailog::Crawler::Detail
詳細データを取得する
Private Instance Methods
convert_data(page)
click to toggle source
ページを詳細データに変換して返す
# File lib/maimailog/crawler/history.rb, line 10 def convert_data(page) data = Maimailog::Data::Detail.new data.date = date(page) data.difficulty = difficulty(page) data.name = name(page) data.judge = judge(page) data.score = score(page) data end
date(page)
click to toggle source
# File lib/maimailog/crawler/history.rb, line 20 def date(page) str = page.search('//div[@class="accordion"]/h3').text[/[\d]{4}-[\d]{2}-[\d]{2} [\d]{2}:[\d]{2}/] DateTime.strptime("#{str} JST", '%Y-%m-%d %H:%M %Z') end
difficulty(page)
click to toggle source
# File lib/maimailog/crawler/history.rb, line 25 def difficulty(page) page.search('//div[@class="accordion"]/ul/font')[1].text.strip end
judge(page)
click to toggle source
# File lib/maimailog/crawler/history.rb, line 33 def judge(page) data = Maimailog::Data::Detail::Judge.new data.perfect = page.search('//table[@class="detail"]//tr[1]//font')[1].text.to_i data.great = page.search('//table[@class="detail"]//tr[2]//font')[1].text.to_i data.good = page.search('//table[@class="detail"]//tr[3]//font')[1].text.to_i data.miss = page.search('//table[@class="detail"]//tr[4]//font')[1].text.to_i data end
name(page)
click to toggle source
# File lib/maimailog/crawler/history.rb, line 29 def name(page) page.search('//div[@class="accordion"]/ul/li/table//td')[1].text.strip end
score(page)
click to toggle source
# File lib/maimailog/crawler/history.rb, line 42 def score(page) data = Maimailog::Data::Detail::Score.new data.tap = page.search('//table[@class="detail"]//tr[6]//td[2]/div')[0].text.to_i data.hold = page.search('//table[@class="detail"]//tr[7]//td[2]/div')[0].text.to_i data.slide = page.search('//table[@class="detail"]//tr[8]//td[2]/div')[0].text.to_i data.break = page.search('//table[@class="detail"]//tr[9]//td[2]/div')[0].text.to_i data.tap_max = page.search('//table[@class="detail"]//tr[6]//td[3]//font')[0].text.to_i data.hold_max = page.search('//table[@class="detail"]//tr[7]//td[3]//font')[0].text.to_i data.slide_max = page.search('//table[@class="detail"]//tr[8]//td[3]//font')[0].text.to_i data.break_max = page.search('//table[@class="detail"]//tr[9]//td[3]//font')[0].text.to_i data end