Module: OpenDMM::Maker::Prestige::Parser

Defined in:
lib/opendmm/makers/prestige.rb

Class Method Summary collapse

Class Method Details

.parse(content) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/opendmm/makers/prestige.rb', line 20

def self.parse(content)
  page_uri = content.request.last_uri
  html = Nokogiri::HTML(content)
  specs = Utils.hash_from_dl(html.css('div.product_detail_layout_01 dl.spec_layout'))
  descriptions = parse_descriptions(html)
  return {
    actresses:       parse_actresses(specs['出演:']),
    code:            specs['品番:'].text,
    cover_image:     html.at_css('div.product_detail_layout_01 p.package_layout a.sample_image')['href'],
    description:     [ descriptions['作品情報'].text, descriptions['レビュー'].text ].join,
    genres:          specs['ジャンル:'].css('a').map(&:text),
    # TODO: Parse complete label, for example
    #       'ABSOLUTELY P…' should be 'ABSOLUTELY PERFECT'
    label:           specs['レーベル:'].text,
    maker:           specs['メーカー名:'].text,
    movie_length:    specs['収録時間:'].text,
    page:            page_uri.to_s,
    release_date:    specs['発売日:'].text,
    sample_images:   descriptions['サンプル画像'].css('a.sample_image').map { |a| a['href'] },
    series:          specs['シリーズ:'].text,
    thumbnail_image: html.at_css('#Wrapper > div.main_layout_01 > div.box_705 > div.section.product_layout_01 > div.product_detail_layout_01 > p > a > img')['src'],
    title:           html.css('div.product_title_layout_01').text,
  }
end