Module: OpenDMM::Maker::Opera::Parser

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

Class Method Summary collapse

Class Method Details

.parse(content) ⇒ Object



19
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/opera.rb', line 19

def self.parse(content)
  page_uri = content.request.last_uri
  html = Nokogiri::HTML(Utils.force_utf8(content))
  specs = Utils.hash_from_dl(html.css('#container-detail > div.pkg-data > div.data > dl.left-data')).merge(
          Utils.hash_from_dl(html.css('#container-detail > div.pkg-data > div.data > dl.right-data')))
  return {
    actresses:       specs['出演女優'].css('a').map(&:text),
    code:            specs['DVD品番'].text,
    cover_image:     html.at_css('div#container-detail > div.pkg-data > div.pkg > a > img')['src'].gsub(/pm.jpg$/, 'pl.jpg'),
    description:     html.css('#container-detail > div.pkg-data > div.comment-data').text,
    directors:       specs['監督'].css('a').map(&:text),
    genres:          specs['ジャンル'].css('a').map(&:text),
    movie_length:    specs['収録時間'].text,
    page:            page_uri.to_s,
    release_date:    specs['発売日'].text,
    sample_images:   html.css('#sample-pic > li > a > img').map { |img| img['src'].gsub(/js(?=-\d+\.jpg$)/, "jl") },
    series:          specs['シリーズ'].text.remove(''),
    thumbnail_image: html.at_css('div#container-detail > div.pkg-data > div.pkg > a > img')['src'],
    title:           html.xpath('//*[@id="container-detail"]/p[1]').text,
    __extra: {
      transsexual:   specs['ニューハーフ'].css('a').map(&:text),
      scatology:     specs['スカトロ'].css('a').map(&:text),
    },
  }
end