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