opendmm 0.3.13 → 0.3.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/opendmm/makers/tameikegoro.rb +10 -12
- data/lib/opendmm/search_engines/dmm.rb +23 -16
- data/lib/opendmm/search_engines/mgstage.rb +5 -1
- data/lib/opendmm/version.rb +1 -1
- data/test/dmm_fixtures/KHY-009.json +21 -0
- data/test/maker_fixtures/MDYD-544.json +5 -9
- data/test/maker_fixtures/MDYD-863.json +1 -4
- data/test/mgstage_fixtures/011OAM-002.json +19 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1e4ce4de84ed824a52ef0cbcc7f8f283416c350
|
4
|
+
data.tar.gz: 7cb7833f536b5910fc95dc5664e98d3fd68bac4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a7d2a36aeaed161acc142b72e256e23f956054b430343cc0c0f3a8d1acf00ad13c17f7d60e785da6ae08f36f0d2ecd23db1c23fde5f42b47e29fc34ffbec2db
|
7
|
+
data.tar.gz: 9220d0acb41fa31ab003343920577627e603856aad04a851ed53bf3100fc86b21864d1bdacca6389d13e12ef2e4f7b86d26da2250d354c1d93e1c10c0ae923d6
|
@@ -8,19 +8,17 @@ register_product(
|
|
8
8
|
private
|
9
9
|
|
10
10
|
def self.parse_product_html(html)
|
11
|
-
specs = Utils.
|
11
|
+
specs = Utils.hash_from_dl(html.css('div.wrap-maincontents > section.wrap-information > div.wrap-detail > div.wrap-detail-text > dl.wrap-detail-item'))
|
12
12
|
{
|
13
|
-
actresses: specs['出演女優'].split
|
14
|
-
cover_image: html.
|
15
|
-
description: html.css('
|
16
|
-
|
17
|
-
genres: specs['ジャンル'].split,
|
18
|
-
label: specs['レーベル'],
|
13
|
+
actresses: specs['出演女優'].text.try(:split, '/'),
|
14
|
+
cover_image: html.css('#wrap-detail-slider > ul.bx-detail-slider > li > img').first['src'],
|
15
|
+
description: html.css('div.wrap-maincontents > section.wrap-information > div.wrap-detail > div.wrap-detail-text > div.wrap-detail-description').text,
|
16
|
+
genres: specs['ジャンル'].text.try(:split),
|
19
17
|
maker: '溜池ゴロー',
|
20
|
-
release_date: specs['発売日'].
|
21
|
-
|
22
|
-
|
23
|
-
thumbnail_image: html.
|
24
|
-
title: html.css('
|
18
|
+
release_date: specs['発売日'].text,
|
19
|
+
series: specs['シリーズ'].text,
|
20
|
+
sample_images: html.css('#wrap-detail-slider > ul.bx-detail-slider > li > img')[1..-1].map { |img| img['src'] },
|
21
|
+
thumbnail_image: html.css('#wrap-detail-slider > ul.bx-detail-slider > li > img').first['src'],
|
22
|
+
title: html.css('div.wrap-maincontents > section.wrap-information > div.bx-index > h2').text,
|
25
23
|
}
|
26
24
|
end
|
@@ -1,18 +1,21 @@
|
|
1
1
|
base_uri 'www.dmm.co.jp'
|
2
2
|
|
3
|
-
def self.search_url(name)
|
3
|
+
def self.search_url(name, digit_len)
|
4
4
|
name = name.split(/(?<=[a-z])(?=\d)|[-_\s]/).map do |token|
|
5
|
-
token =~ /^\d
|
6
|
-
end.join
|
5
|
+
token =~ /^\d+$/ ? token.rjust(digit_len, '0') : token
|
6
|
+
end.join
|
7
7
|
"/search/=/searchstr=#{CGI::escape(name)}"
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.product_url(name)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
5.downto(3) do |len|
|
12
|
+
search_page = get_with_retry search_url(name, len)
|
13
|
+
next unless search_page
|
14
|
+
search_html = Utils.html_in_utf8 search_page
|
15
|
+
first_result = search_html.at_css('#list > li > div > p.tmb > a')
|
16
|
+
return first_result['href'] if first_result
|
17
|
+
end
|
18
|
+
nil
|
16
19
|
end
|
17
20
|
|
18
21
|
def self.product_extra_info(name, url, page, html)
|
@@ -20,24 +23,28 @@ def self.product_extra_info(name, url, page, html)
|
|
20
23
|
if dmm_id =~ /\d*([a-z]+)0*(\d+)/i
|
21
24
|
dmm_id = "#{$1.upcase}-#{$2.rjust(3, '0')}"
|
22
25
|
end
|
23
|
-
{
|
26
|
+
{
|
27
|
+
code: dmm_id,
|
28
|
+
maker: 'DMM',
|
29
|
+
}
|
24
30
|
end
|
25
31
|
|
26
32
|
private
|
27
33
|
|
28
34
|
def self.parse_product_html(html)
|
29
|
-
specs = Utils.hash_by_split(html.css('
|
35
|
+
specs = Utils.hash_by_split(html.css('//div[@class="page-detail"]/table/tr/td[1]/table/tr').map(&:text))
|
30
36
|
{
|
31
|
-
actresses: specs['出演者'].split
|
32
|
-
cover_image: html.at_css('#sample-video > a')['href'
|
33
|
-
|
34
|
-
|
37
|
+
actresses: (specs['出演者'] || specs['名前']).try(:split, /[\s\/]/),
|
38
|
+
cover_image: (html.at_css('#sample-video > a').try(:[], 'href') ||
|
39
|
+
html.at_css('#sample-video > img').try(:[], 'src')),
|
40
|
+
directors: specs['監督'].try(:split),
|
41
|
+
genres: specs['ジャンル'].try(:split),
|
35
42
|
label: specs['レーベル'],
|
36
43
|
maker: specs['メーカー'],
|
37
44
|
movie_length: specs['収録時間'],
|
38
|
-
release_date: specs['商品発売日'],
|
45
|
+
release_date: (specs['商品発売日'] || specs['配信開始日']),
|
39
46
|
series: specs['シリーズ'],
|
40
|
-
thumbnail_image: html.at_css('#sample-video
|
47
|
+
thumbnail_image: html.at_css('#sample-video img').try(:[], 'src'),
|
41
48
|
title: html.css('#title').text,
|
42
49
|
}
|
43
50
|
end
|
@@ -27,7 +27,7 @@ def self.parse_product_html(html)
|
|
27
27
|
# boobs: String
|
28
28
|
# brand: String
|
29
29
|
# categories: Array
|
30
|
-
code: specs['品番:'].text,
|
30
|
+
code: parse_code(specs['品番:'].text),
|
31
31
|
cover_image: html.at_css('#EnlargeImage')['href'],
|
32
32
|
description: html.css('#introduction_text > p.introduction').text,
|
33
33
|
# directors: Array
|
@@ -46,3 +46,7 @@ def self.parse_product_html(html)
|
|
46
46
|
title: html.css('.title_detail_layout h1').text,
|
47
47
|
}
|
48
48
|
end
|
49
|
+
|
50
|
+
def self.parse_code(str)
|
51
|
+
str =~ /^\d+(\w+-\d+)$/ ? $1 : str
|
52
|
+
end
|
data/lib/opendmm/version.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"actresses": [
|
3
|
+
"佐藤友里恵(27)"
|
4
|
+
],
|
5
|
+
"code": "KHY-009",
|
6
|
+
"cover_image": "http://pics.dmm.co.jp/digital/amateur/khy009/yurie07081jp.jpg",
|
7
|
+
"genres": [
|
8
|
+
"ごっくん",
|
9
|
+
"フェラ",
|
10
|
+
"縛り・緊縛",
|
11
|
+
"痴女",
|
12
|
+
"巻き髪"
|
13
|
+
],
|
14
|
+
"label": "恋する花嫁",
|
15
|
+
"maker": "DMM",
|
16
|
+
"movie_length": 4500,
|
17
|
+
"page": "http://www.dmm.co.jp/ppm/videoc/-/detail/=/cid=khy009/",
|
18
|
+
"release_date": "2010-12-10",
|
19
|
+
"thumbnail_image": "http://pics.dmm.co.jp/digital/amateur/khy009/yurie07081jp.jpg",
|
20
|
+
"title": "佐藤友里恵"
|
21
|
+
}
|
@@ -5,16 +5,12 @@
|
|
5
5
|
"code": "MDYD-544",
|
6
6
|
"cover_image": "http://tameikegoro.jp/images/works/mdyd544/mdyd544pl.jpg",
|
7
7
|
"description": "新しく来た家政婦玲子の爆乳に見惚れてしまう男が彼女を言いくるめてむっちりとたわわな爆乳を弄びまくる。ボディオイルやローションを使ったり、胸を使ってマッサージさせたり、執拗にパイズリやフェラで奉仕させる。そして男の不在に家に侵入した泥棒は目隠し&拘束された玲子の痴態を発見する。そして…。",
|
8
|
-
"directors": [
|
9
|
-
"溜池ゴロー"
|
10
|
-
],
|
11
8
|
"genres": [
|
12
|
-
"パイズリ",
|
13
|
-
"バイブ・ローター",
|
14
|
-
"フェラ",
|
15
|
-
"巨乳・爆乳",
|
16
9
|
"美熟女",
|
17
|
-
"
|
10
|
+
"巨乳・爆乳",
|
11
|
+
"フェラ",
|
12
|
+
"おもちゃ",
|
13
|
+
"パイズリ"
|
18
14
|
],
|
19
15
|
"maker": "溜池ゴロー",
|
20
16
|
"page": "http://tameikegoro.jp/works/-/detail/=/cid=mdyd544",
|
@@ -30,6 +26,6 @@
|
|
30
26
|
"http://tameikegoro.jp/images/works/mdyd544/mdyd544jp-8.jpg"
|
31
27
|
],
|
32
28
|
"series": "弄ばれた家政婦の○○",
|
33
|
-
"thumbnail_image": "http://tameikegoro.jp/images/works/mdyd544/
|
29
|
+
"thumbnail_image": "http://tameikegoro.jp/images/works/mdyd544/mdyd544pl.jpg",
|
34
30
|
"title": "弄ばれた家政婦の乳"
|
35
31
|
}
|
@@ -6,9 +6,6 @@
|
|
6
6
|
"code": "MDYD-863",
|
7
7
|
"cover_image": "http://tameikegoro.jp/images/works/mdyd863/mdyd863pl.jpg",
|
8
8
|
"description": "夫の転勤を機に引っ越して来たこはるは、不在がちな夫にも我慢する健気な若妻。隣人の主婦・千里も、彼女に優しい。しかし、彼女の真の目的はこはるの身体。執拗なまでにこはるの躰を弄ぶ千里、戸惑いながらも、いつしか千里の与える快楽が忘れられない自分に気づくこはるは、禁断の世界へ堕ちてゆく…。",
|
9
|
-
"directors": [
|
10
|
-
"前田文豪"
|
11
|
-
],
|
12
9
|
"genres": [
|
13
10
|
"人妻",
|
14
11
|
"痴女",
|
@@ -27,6 +24,6 @@
|
|
27
24
|
"http://tameikegoro.jp/images/works/mdyd863/mdyd863jp-7.jpg",
|
28
25
|
"http://tameikegoro.jp/images/works/mdyd863/mdyd863jp-8.jpg"
|
29
26
|
],
|
30
|
-
"thumbnail_image": "http://tameikegoro.jp/images/works/mdyd863/
|
27
|
+
"thumbnail_image": "http://tameikegoro.jp/images/works/mdyd863/mdyd863pl.jpg",
|
31
28
|
"title": "美熟女にレズレイプで堕とされた若妻"
|
32
29
|
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"actresses": [
|
3
|
+
"音羽レオン"
|
4
|
+
],
|
5
|
+
"code": "OAM-002",
|
6
|
+
"cover_image": "http://image.mgstage.com/images/opus/011oam/002/pb_e_011oam-002.jpg",
|
7
|
+
"description": "新企画第二弾!!",
|
8
|
+
"genres": [
|
9
|
+
"企画",
|
10
|
+
"女優"
|
11
|
+
],
|
12
|
+
"maker": "オプス",
|
13
|
+
"movie_length": 7200,
|
14
|
+
"page": "http://www.mgstage.com/ppv/video/011OAM-002/",
|
15
|
+
"release_date": "2010-08-23",
|
16
|
+
"series": "はじまりはいつもフェラ",
|
17
|
+
"thumbnail_image": "http://image.mgstage.com/images/opus/011oam/002/pf_o1_011oam-002.jpg",
|
18
|
+
"title": "はじまりはいつもフェラ -音羽 レオン-"
|
19
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opendmm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Zhou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- test/av_entertainments_fixtures/SKYHD-108.json
|
174
174
|
- test/av_entertainments_fixtures/sky107.json
|
175
175
|
- test/dmm_fixtures/DMYJ-001.json
|
176
|
+
- test/dmm_fixtures/KHY-009.json
|
176
177
|
- test/dmm_fixtures/RKI-294.json
|
177
178
|
- test/dmm_fixtures/dmyj00001.json
|
178
179
|
- test/dmm_fixtures/dmyj001.json
|
@@ -352,6 +353,7 @@ files:
|
|
352
353
|
- test/maker_fixtures/YRZ-009.json
|
353
354
|
- test/maker_fixtures/YUM-001.json
|
354
355
|
- test/maker_fixtures/ZEX-068.json
|
356
|
+
- test/mgstage_fixtures/011OAM-002.json
|
355
357
|
- test/mgstage_fixtures/SIRO-1088.json
|
356
358
|
- test/mgstage_fixtures/siro1088.json
|
357
359
|
homepage:
|
@@ -383,6 +385,7 @@ test_files:
|
|
383
385
|
- test/av_entertainments_fixtures/SKYHD-108.json
|
384
386
|
- test/av_entertainments_fixtures/sky107.json
|
385
387
|
- test/dmm_fixtures/DMYJ-001.json
|
388
|
+
- test/dmm_fixtures/KHY-009.json
|
386
389
|
- test/dmm_fixtures/RKI-294.json
|
387
390
|
- test/dmm_fixtures/dmyj00001.json
|
388
391
|
- test/dmm_fixtures/dmyj001.json
|
@@ -562,5 +565,6 @@ test_files:
|
|
562
565
|
- test/maker_fixtures/YRZ-009.json
|
563
566
|
- test/maker_fixtures/YUM-001.json
|
564
567
|
- test/maker_fixtures/ZEX-068.json
|
568
|
+
- test/mgstage_fixtures/011OAM-002.json
|
565
569
|
- test/mgstage_fixtures/SIRO-1088.json
|
566
570
|
- test/mgstage_fixtures/siro1088.json
|