opendmm 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d79ea43d6638b0ff1440f3cca462332a39155f3d
4
- data.tar.gz: ce40711b3fb829c2afbceb9c0babb4eb993cd9a4
3
+ metadata.gz: 0eb9843e091ce7fb7ac11d92dd4d57d2823eeabb
4
+ data.tar.gz: d635a34a6ade9aacc2adfa6c48ec88ffc606ab71
5
5
  SHA512:
6
- metadata.gz: d608872e15bdbd8c12e8e279a1604246265efabe232e830e16661a5f42270f50dd0efb96453a06a945766594871c2359ef5c71daf918b6e05b8705fec89275c1
7
- data.tar.gz: 5c1e7e09a65c0a3012c83cd187d8ee578684666b2a2c87978f6929871bfe2778285a1668d55cff71f16d1bb64d79a2f1fa3f78dd0ffc658a4c76e1155282464b
6
+ metadata.gz: 4f1a6585dbff1467afe45e93419e3181969dc914a93bdc47c5406b36bb9237b1e51696d12a77a4938d83f31c69eb415546e71092e9e052a010fb9aca13d4e399
7
+ data.tar.gz: d366e125b29588550a79a2e675d5b4455a4a97a6828966885ca8a495a79069addd5b93d0d11b22143f43c4c08ce543ad73005c900de89b96cf9798c343a4d801
data/Rakefile CHANGED
@@ -8,17 +8,14 @@ Rake::TestTask.new do |t|
8
8
  end
9
9
 
10
10
  namespace :fixture do
11
- desc 'Generate a fixture'
12
- task :generate, [:id] => :install do |t, args|
13
- fixture = OpenDMM.search(args[:id])
14
- if fixture.blank?
15
- puts "#{args[:id]} not found"
16
- next
17
- end
18
- File.open(File.join(File.dirname(__FILE__) + "/test/maker_fixtures/#{args[:id]}.json"), 'w') do |file|
19
- puts "Generating #{args[:id]}.json"
20
- file.puts JSON.pretty_generate(fixture)
21
- end
11
+ desc 'Generate a maker fixture'
12
+ task :maker, [:id] => :install do |t, args|
13
+ generate(args[:id], 'maker')
14
+ end
15
+
16
+ desc 'Generate a search engine fixture'
17
+ task :search_engine, [:id, :name] => :install do |t, args|
18
+ generate(args[:id], args[:name])
22
19
  end
23
20
 
24
21
  desc 'Regenerate all fixtures'
@@ -31,6 +28,20 @@ namespace :fixture do
31
28
  end
32
29
  end
33
30
  end
31
+
32
+ private
33
+
34
+ def generate(id, category)
35
+ fixture = OpenDMM.search(id)
36
+ if fixture.blank?
37
+ puts "#{id} not found"
38
+ return
39
+ end
40
+ File.open(File.join(File.dirname(__FILE__) + "/test/#{category}_fixtures/#{id}.json"), 'w') do |file|
41
+ puts "Generating #{id}.json"
42
+ file.puts JSON.pretty_generate(fixture)
43
+ end
44
+ end
34
45
  end
35
46
 
36
47
  namespace :maker do
@@ -43,39 +54,38 @@ base_uri 'example.com'
43
54
 
44
55
  register_product(
45
56
  /^(EXAM)-?(\d{3})$/i,
46
- '#{$1.downcase}#{$2}',
57
+ '#\{$1.downcase\}#\{$2\}',
47
58
  )
48
59
 
49
60
  private
50
61
 
51
62
  def self.parse_product_html(html)
52
63
  {
53
- # actresses: Array
54
- # actress_types: Array
55
- # boobs: String
56
- # brand: String
57
- # categories: Array
58
- # code: String
59
- # cover_image: String
60
- # description: String
61
- # directors: Array
62
- # genres: Array
63
- # label: String
64
- # maker: String
65
- # movie_length: String
66
- # page: String
67
- # release_date: String
68
- # sample_images: Array
69
- # scenes: Array
70
- # series: String
71
- # subtitle: String
72
- # theme: String
73
- # thumbnail_image: String
74
- # title: String
75
- # __extra: Hash
64
+ # actresses: Array
65
+ # actress_types: Array
66
+ # boobs: String
67
+ # brand: String
68
+ # categories: Array
69
+ # code: String
70
+ # cover_image: String
71
+ # description: String
72
+ # directors: Array
73
+ # genres: Array
74
+ # label: String
75
+ # maker: String
76
+ # movie_length: String
77
+ # page: String
78
+ # release_date: String
79
+ # sample_images: Array
80
+ # scenes: Array
81
+ # series: String
82
+ # subtitle: String
83
+ # theme: String
84
+ # thumbnail_image: String
85
+ # title: String
86
+ # __extra: Hash
76
87
  }
77
88
  end
78
-
79
89
  CODE
80
90
  end
81
91
  end
@@ -0,0 +1,41 @@
1
+ base_uri 'www.mgstage.com'
2
+ cookies(adc: 1, coc: 1)
3
+ headers({
4
+ "User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
5
+ })
6
+
7
+ register_product(
8
+ /^(\w+?)-?(\d+)$/i,
9
+ '/ppv/video/#{$1.upcase}-#{$2}',
10
+ )
11
+
12
+ private
13
+
14
+ def self.parse_product_html(html)
15
+ specs = Utils.hash_from_dl(html.css('div.content_detail_layout_01 > dl.spec_layout'))
16
+ {
17
+ actresses: specs['出演:'].css('a').map(&:text),
18
+ # actress_types: Array
19
+ # boobs: String
20
+ # brand: String
21
+ # categories: Array
22
+ code: specs['品番:'].text,
23
+ cover_image: html.at_css('#EnlargeImage')['href'],
24
+ description: html.css('#introduction_text > p.introduction').text,
25
+ # directors: Array
26
+ genres: specs['ジャンル:'].css('a').map(&:text),
27
+ # label: String
28
+ maker: specs['メーカー:'].text,
29
+ movie_length: specs['収録時間:'].text,
30
+ # page: String
31
+ release_date: specs['配信開始日:'].text,
32
+ sample_images: html.css('div.content_sample_layout_01 > a.sample_image').map { |a| a['href'] },
33
+ # scenes: Array
34
+ series: specs['シリーズ名:'].text,
35
+ # subtitle: String
36
+ # theme: String
37
+ thumbnail_image: html.at_css('div.content_detail_layout_01 img.enlarge_image')['src'],
38
+ title: html.css('.title_detail_layout h1').text,
39
+ # __extra: Hash
40
+ }
41
+ end
@@ -1,3 +1,3 @@
1
1
  module OpenDMM
2
- VERSION = '0.1.7'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/opendmm.rb CHANGED
@@ -32,7 +32,7 @@ module OpenDMM
32
32
  # }
33
33
 
34
34
  def self.search(name, debug = false)
35
- Maker.search(name) || SearchEngine::JavLibrary.search(name) || SearchEngine::Dmm.search(name)
35
+ Maker.search(name) || SearchEngine::JavLibrary.search(name) || SearchEngine::Dmm.search(name) || SearchEngine::Mgstage.search(name)
36
36
  rescue => e
37
37
  if debug
38
38
  puts e.inspect
data/test/fixture_test.rb CHANGED
@@ -58,7 +58,8 @@ end
58
58
 
59
59
  { 'dmm' => 'OpenDMM::SearchEngine::Dmm',
60
60
  'jav_library' => 'OpenDMM::SearchEngine::JavLibrary',
61
- 'maker' => 'OpenDMM::Maker' }.each do |category, klass|
61
+ 'maker' => 'OpenDMM::Maker',
62
+ 'mgstage' => 'OpenDMM::SearchEngine::Mgstage' }.each do |category, klass|
62
63
  Dir[File.dirname(__FILE__) + "/#{category}_fixtures/*.json"].each do |file|
63
64
  name = File.basename(file, '.json')
64
65
  eval <<-TESTCASE
@@ -0,0 +1,29 @@
1
+ {
2
+ "actresses": [
3
+ "サトミ 20歳 学生"
4
+ ],
5
+ "code": "SIRO-1088",
6
+ "cover_image": "http://image.mgstage.com/images/shirouto/siro/1088/pb_e_siro-1088.jpg",
7
+ "description": "今や時代はグローバル。自国だけにとどまらず海外の動きまで目を配らなければトレンドに乗り遅れてしまう。そんなご時世にピッタリのシロウト美少女が、AVの撮影にやってきた。言わばシロウト娘の期待の星と言っても過言ではないだろう。名前はサトミ、学生だ。周囲からは「ワールドワイド・サトミ」と呼ばれているそうだ。彼女、面接時に記入するプロフィール用紙の名前欄には「satomi」と表記されていた(見づらいとかややこしいとか文句を言われるとアレなので、ここではカタカナ表記で紹介させてもらっている)。このことからも察せるように、彼女は海外、特に英語圏への関心が強い。学校でも英語の勉強に力を入れており、流暢な英語からもその熱心ぶりがうかがえる。将来海外で生活することを夢見て、着々と準備を進めている。さて、彼女がここまで海外に強い憧れを抱いている理由なのだが、それは彼女の男性経験が強く関わっている。彼女が今までに付き合ってきた男性は皆、良く言えば優しい、悪く言えばホネがない、といった感じだった。普段一緒にいる分にはいいのだが、エッチの時は、どうも物足りなく感じてしまう。彼女は人より強引に責められるのが好きなのだ。そんな中彼女の目に留まったのが、海外のAVだ。逞しい身体、オモチャのように女を弄ぶ様……彼女は一瞬で虜になった。私も外国の男の人とエッチがしたい……その欲望が、彼女の心を海外へと駆り立てているのだ。そんな「ワールドワイド・サトミ」ちゃんの話を聞き、是非この機会に海外の男性との初エッチを体験していただきたいとも思ったのだが、残念ながら今回は用意できなかった。彼女には申し訳ないが、せめてこの撮影で得たギャラを、夢の実現に役立てて欲しいと思う。ここでお待ちかね、彼女自身のエッチはというと、世界に目を向けつつ、日本が世界に誇る「和の心」は、しっかりその身体に残している。和の心、それすなわち「恥じらい」である。ノリノリであったり性欲剥き出しなのもいいのだが、やはり責められて恥ずかしがっている所はグッとくるし、どこかこう、趣深いところがある。鏡の前に立たされ、おっぱいなどをいじられているところを見せつけられ恥ずかしがっている様はたまらなく興奮する。どうでしょう、海の向こうに広がる世界に思いを馳せながら、「ワールドワイド・サトミ」の恥じらう姿で一発。是非ご覧になってみてください。",
8
+ "genres": [
9
+ "スレンダー",
10
+ "ハイビジョン(HD)",
11
+ "ハメ撮り",
12
+ "フェラ",
13
+ "素人"
14
+ ],
15
+ "maker": "シロウトTV",
16
+ "movie_length": 3000,
17
+ "page": "http://www.mgstage.com/ppv/video/SIRO-1088",
18
+ "release_date": "2012-06-23",
19
+ "sample_images": [
20
+ "http://image.mgstage.com/images/shirouto/siro/1088/cap_e_0_siro-1088.jpg",
21
+ "http://image.mgstage.com/images/shirouto/siro/1088/cap_e_1_siro-1088.jpg",
22
+ "http://image.mgstage.com/images/shirouto/siro/1088/cap_e_2_siro-1088.jpg",
23
+ "http://image.mgstage.com/images/shirouto/siro/1088/cap_e_3_siro-1088.jpg",
24
+ "http://image.mgstage.com/images/shirouto/siro/1088/cap_e_4_siro-1088.jpg"
25
+ ],
26
+ "series": "素人個人撮影、投稿。",
27
+ "thumbnail_image": "http://image.mgstage.com/images/shirouto/siro/1088/pb_p_siro-1088.jpg",
28
+ "title": "素人個人撮影、投稿。155"
29
+ }
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.1.7
4
+ version: 0.2.0
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-06-29 00:00:00.000000000 Z
11
+ date: 2014-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -161,6 +161,7 @@ files:
161
161
  - lib/opendmm/search_engine.rb
162
162
  - lib/opendmm/search_engines/dmm.rb
163
163
  - lib/opendmm/search_engines/jav_library.rb
164
+ - lib/opendmm/search_engines/mgstage.rb
164
165
  - lib/opendmm/site.rb
165
166
  - lib/opendmm/utils.rb
166
167
  - lib/opendmm/version.rb
@@ -312,6 +313,7 @@ files:
312
313
  - test/maker_fixtures/YRH-008.json
313
314
  - test/maker_fixtures/YRZ-009.json
314
315
  - test/maker_fixtures/ZEX-068.json
316
+ - test/mgstage_fixtures/SIRO-1088.json
315
317
  homepage:
316
318
  licenses:
317
319
  - MIT
@@ -484,3 +486,4 @@ test_files:
484
486
  - test/maker_fixtures/YRH-008.json
485
487
  - test/maker_fixtures/YRZ-009.json
486
488
  - test/maker_fixtures/ZEX-068.json
489
+ - test/mgstage_fixtures/SIRO-1088.json