opendmm 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +3 -0
  5. data/README.md +9 -0
  6. data/Rakefile +77 -0
  7. data/bin/opendmm +24 -0
  8. data/lib/opendmm.rb +9 -0
  9. data/lib/opendmm/maker.rb +60 -0
  10. data/lib/opendmm/makers/aknr.rb +38 -0
  11. data/lib/opendmm/makers/ako3.rb +39 -0
  12. data/lib/opendmm/makers/anna_and_hanako.rb +40 -0
  13. data/lib/opendmm/makers/apa.rb +40 -0
  14. data/lib/opendmm/makers/aroma.rb +63 -0
  15. data/lib/opendmm/makers/attackers.rb +55 -0
  16. data/lib/opendmm/makers/aurora.rb +45 -0
  17. data/lib/opendmm/makers/baltan.rb +40 -0
  18. data/lib/opendmm/makers/befree.rb +42 -0
  19. data/lib/opendmm/makers/bi.rb +44 -0
  20. data/lib/opendmm/makers/bijin_majo.rb +39 -0
  21. data/lib/opendmm/makers/candy.rb +41 -0
  22. data/lib/opendmm/makers/caribbean.rb +40 -0
  23. data/lib/opendmm/makers/dip.rb +43 -0
  24. data/lib/opendmm/makers/dmm_collection.rb +39 -0
  25. data/lib/opendmm/makers/ebody.rb +42 -0
  26. data/lib/opendmm/makers/ideapocket.rb +68 -0
  27. data/lib/opendmm/makers/kawaii.rb +41 -0
  28. data/lib/opendmm/makers/kira_kira.rb +41 -0
  29. data/lib/opendmm/makers/madonna.rb +41 -0
  30. data/lib/opendmm/makers/moodyz.rb +48 -0
  31. data/lib/opendmm/makers/munekyunkissa.rb +42 -0
  32. data/lib/opendmm/makers/opera.rb +47 -0
  33. data/lib/opendmm/makers/oppai.rb +57 -0
  34. data/lib/opendmm/makers/premium.rb +43 -0
  35. data/lib/opendmm/makers/prestige.rb +66 -0
  36. data/lib/opendmm/makers/s1.rb +41 -0
  37. data/lib/opendmm/makers/sod.rb +44 -0
  38. data/lib/opendmm/makers/tameikegoro.rb +42 -0
  39. data/lib/opendmm/makers/to_satsu.rb +40 -0
  40. data/lib/opendmm/makers/waap.rb +46 -0
  41. data/lib/opendmm/search_engines/jav_library.rb +58 -0
  42. data/lib/opendmm/utils.rb +119 -0
  43. data/lib/opendmm/version.rb +3 -0
  44. data/opendmm.gemspec +25 -0
  45. data/test/fixtures/ABP-013.json +33 -0
  46. data/test/fixtures/ABS-014.json +31 -0
  47. data/test/fixtures/ABY-003.json +32 -0
  48. data/test/fixtures/ADN-019.json +37 -0
  49. data/test/fixtures/AIR-017.json +34 -0
  50. data/test/fixtures/AKO-011.json +20 -0
  51. data/test/fixtures/ALB-182.json +31 -0
  52. data/test/fixtures/ANND-066.json +29 -0
  53. data/test/fixtures/AP-001.json +24 -0
  54. data/test/fixtures/APAA-182.json +38 -0
  55. data/test/fixtures/APAK-051.json +42 -0
  56. data/test/fixtures/ARM-191.json +28 -0
  57. data/test/fixtures/ARMG-223.json +27 -0
  58. data/test/fixtures/ATID-183.json +41 -0
  59. data/test/fixtures/BBI-104.json +33 -0
  60. data/test/fixtures/BEB-001.json +35 -0
  61. data/test/fixtures/BF-175.json +31 -0
  62. data/test/fixtures/BID-017.json +40 -0
  63. data/test/fixtures/BIJN-006.json +25 -0
  64. data/test/fixtures/BLK-049.json +27 -0
  65. data/test/fixtures/BRA-002.json +34 -0
  66. data/test/fixtures/BWB-005.json +31 -0
  67. data/test/fixtures/CHN-008.json +31 -0
  68. data/test/fixtures/CHS-015.json +32 -0
  69. data/test/fixtures/CLUB-003.json +22 -0
  70. data/test/fixtures/CND-012.json +29 -0
  71. data/test/fixtures/CWM-156.json +34 -0
  72. data/test/fixtures/Carib 021511-620.json +27 -0
  73. data/test/fixtures/DCOL-017.json +25 -0
  74. data/test/fixtures/DGL-007.json +24 -0
  75. data/test/fixtures/DOM-045.json +36 -0
  76. data/test/fixtures/EBOD-109.json +30 -0
  77. data/test/fixtures/ECB-078.json +33 -0
  78. data/test/fixtures/EDD-189.json +33 -0
  79. data/test/fixtures/ESK-232.json +31 -0
  80. data/test/fixtures/EZD-369.json +32 -0
  81. data/test/fixtures/FSET-399.json +40 -0
  82. data/test/fixtures/HAZ-009.json +33 -0
  83. data/test/fixtures/HON-001.json +31 -0
  84. data/test/fixtures/IDBD-447.json +32 -0
  85. data/test/fixtures/INU-013.json +34 -0
  86. data/test/fixtures/IPSD-041.json +40 -0
  87. data/test/fixtures/IPTD-464.json +35 -0
  88. data/test/fixtures/IPTD-629.json +32 -0
  89. data/test/fixtures/IPZ-005.json +35 -0
  90. data/test/fixtures/JBD-153.json +42 -0
  91. data/test/fixtures/JBS-004.json +32 -0
  92. data/test/fixtures/JOB-010.json +33 -0
  93. data/test/fixtures/JUC-285.json +36 -0
  94. data/test/fixtures/JUFD-137.json +33 -0
  95. data/test/fixtures/JUX-007.json +35 -0
  96. data/test/fixtures/JUX-119.json +35 -0
  97. data/test/fixtures/KAWD-249.json +30 -0
  98. data/test/fixtures/KIRD-147.json +28 -0
  99. data/test/fixtures/KISD-042.json +32 -0
  100. data/test/fixtures/LLR-005.json +35 -0
  101. data/test/fixtures/MAS-042.json +36 -0
  102. data/test/fixtures/MBD-148.json +32 -0
  103. data/test/fixtures/MDC-002.json +33 -0
  104. data/test/fixtures/MDYD-544.json +34 -0
  105. data/test/fixtures/MEK-008.json +32 -0
  106. data/test/fixtures/MIAD-490.json +34 -0
  107. data/test/fixtures/MIDD-599.json +36 -0
  108. data/test/fixtures/MIDD-643.json +32 -0
  109. data/test/fixtures/MIDD-644.json +30 -0
  110. data/test/fixtures/MIDE-004.json +34 -0
  111. data/test/fixtures/MIGD-284.json +34 -0
  112. data/test/fixtures/MIGD-336.json +33 -0
  113. data/test/fixtures/MIGD-337.json +35 -0
  114. data/test/fixtures/MIMK-005.json +36 -0
  115. data/test/fixtures/MINT-004.json +35 -0
  116. data/test/fixtures/MIQD-010.json +27 -0
  117. data/test/fixtures/MIRD-071.json +41 -0
  118. data/test/fixtures/MIRD-072.json +47 -0
  119. data/test/fixtures/MIRD-073.json +38 -0
  120. data/test/fixtures/MIXS-005.json +34 -0
  121. data/test/fixtures/MMY-010.json +32 -0
  122. data/test/fixtures/NAGE-001.json +33 -0
  123. data/test/fixtures/NDR-001.json +32 -0
  124. data/test/fixtures/NOF-003.json +36 -0
  125. data/test/fixtures/NPS-130.json +18 -0
  126. data/test/fixtures/OBA-045.json +35 -0
  127. data/test/fixtures/ONSD-570.json +29 -0
  128. data/test/fixtures/OPUD-125.json +46 -0
  129. data/test/fixtures/OSR-003.json +32 -0
  130. data/test/fixtures/PARM-028.json +21 -0
  131. data/test/fixtures/PBD-134.json +29 -0
  132. data/test/fixtures/PGD-306.json +34 -0
  133. data/test/fixtures/PJD-085.json +31 -0
  134. data/test/fixtures/PPB-008.json +31 -0
  135. data/test/fixtures/PPP-001.json +45 -0
  136. data/test/fixtures/PPPD-102.json +33 -0
  137. data/test/fixtures/PPSD-028.json +40 -0
  138. data/test/fixtures/PPT-004.json +31 -0
  139. data/test/fixtures/PTS-230.json +17 -0
  140. data/test/fixtures/PTV-001.json +28 -0
  141. data/test/fixtures/PXD-027.json +37 -0
  142. data/test/fixtures/RAW-005.json +32 -0
  143. data/test/fixtures/RBD-183.json +40 -0
  144. data/test/fixtures/SAD-031.json +35 -0
  145. data/test/fixtures/SDDE-312.json +34 -0
  146. data/test/fixtures/SDMT-802.json +32 -0
  147. data/test/fixtures/SDMU-008.json +38 -0
  148. data/test/fixtures/SDNM-011.json +37 -0
  149. data/test/fixtures/SET-007.json +32 -0
  150. data/test/fixtures/SGA-001.json +31 -0
  151. data/test/fixtures/SHKD-415.json +38 -0
  152. data/test/fixtures/SNIS-041.json +34 -0
  153. data/test/fixtures/SOE-259.json +31 -0
  154. data/test/fixtures/SPC-001.json +31 -0
  155. data/test/fixtures/SPS-008.json +32 -0
  156. data/test/fixtures/SRS-015.json +32 -0
  157. data/test/fixtures/SSPD-077.json +44 -0
  158. data/test/fixtures/STAR-359.json +33 -0
  159. data/test/fixtures/SUPD-065.json +41 -0
  160. data/test/fixtures/TDT-018.json +31 -0
  161. data/test/fixtures/TMAM-034.json +14 -0
  162. data/test/fixtures/TMCY-039.json +14 -0
  163. data/test/fixtures/TMDI-040.json +14 -0
  164. data/test/fixtures/TMEM-044.json +14 -0
  165. data/test/fixtures/TMVI-042.json +14 -0
  166. data/test/fixtures/TRD-062.json +31 -0
  167. data/test/fixtures/URE-011.json +38 -0
  168. data/test/fixtures/WA-201.json +17 -0
  169. data/test/fixtures/WAT-003.json +33 -0
  170. data/test/fixtures/WPC-002.json +35 -0
  171. data/test/fixtures/WSS-231.json +33 -0
  172. data/test/fixtures/XND-023.json +32 -0
  173. data/test/fixtures/XV-100.json +18 -0
  174. data/test/fixtures/XV-1000.json +24 -0
  175. data/test/fixtures/YRH-008.json +35 -0
  176. data/test/fixtures/YRZ-009.json +32 -0
  177. data/test/fixtures/ZEX-068.json +18 -0
  178. data/test/fixtures_test.rb +76 -0
  179. metadata +454 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "actresses": [
3
+ "平原みなみ"
4
+ ],
5
+ "brand": "WAAP",
6
+ "code": "WSS231",
7
+ "cover_image": "http://www.waap.co.jp/hskhsk/itsub/WSS231.jpg",
8
+ "description": "このコ、とにかくキレイ好き。 ごっくん好きを公言する元A●B研究生の平原みなみが、真剣ご奉仕で搾りだした特濃ザーメンを飲むだけでは飽き足らず、「射精への感謝」と「もう一回♪」への期待で、発射直後で精子まみれの敏感チ●ポを丹念にしゃぶりあげていく、性欲底無しガールの愛あるごっくんと終わらないお掃除フェラ、全6編。",
9
+ "directors": [
10
+ "K*WEST"
11
+ ],
12
+ "genres": [
13
+ "アダルト",
14
+ "女優",
15
+ "現行商品"
16
+ ],
17
+ "label": "So",
18
+ "maker": "ワープエンタテインメント",
19
+ "movie_length": 7800,
20
+ "page": "http://www.waap.co.jp/work/item.php?itemcode=WSS231",
21
+ "release_date": "2013-04-19",
22
+ "sample_images": [
23
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_01.jpg",
24
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_02.jpg",
25
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_03.jpg",
26
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_04.jpg",
27
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_05.jpg",
28
+ "http://www.waap.co.jp/hskhsk/SampleBImg/WSS231_06.jpg"
29
+ ],
30
+ "series": "1発が大量な濃厚ザーメンをゴックンしてから、また勃ってきちゃいそうなほど丁寧なおそうじフェラ",
31
+ "thumbnail_image": "http://www.waap.co.jp/hskhsk/itbig/WSS231.jpg",
32
+ "title": "1発が大量な濃厚ザーメンをゴックンしてから、また勃ってきちゃいそうなほど丁寧なおそうじフェラ"
33
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "actresses": [
3
+ "茉莉花"
4
+ ],
5
+ "code": "XND-023",
6
+ "cover_image": "http://image.prestige-av.com/images/prestige/xnd/023/pb_e_xnd-023.jpg",
7
+ "description": "お尻丸出しでフェラする姿がエロ過ぎるマリカ。教師と濃厚なキスをしていると友人が現れ、仲良く一緒に胸やお尻で誘惑する姿は堪りません!お互いがクンニや手マンで潮吹きしている姿を見てから教師を責め、フェラ&アナル舐めの同時責めは必見!交互に挿入されるとマン汁が付いたチ○コをしゃぶったり、ガチガチのチ○コを根元まで挿し込まれ感じる姿はエロの極み!水着姿でチングリ返しの男の肛門を交互に舐めてパイズリ抜きし、黒人2人と3P・・・と激エロシーン満載。胸も尻も日本規格外サイズの茉莉花。たわわな谷間を見せつけBFにフェラチオ→舌上射精! 先生のチ○ポを同級生のアンジェと奪い合い、我先にとアナルも舐めちゃう! W潮吹きで仲良くなってレズりながら3P、発射汁も2人で分け合います。運動部員一同にはフェラと手コキで激励。バイブは自分のマ○コに入れっぱなしで、6連続顔面ぶっかけに「精子あったかい…」と興奮。アンジェと一緒に覗き魔をパイズリで辱め、3Pでも黒人の巨大チ○ポを2本交互に咥えて嬉しそう。アソコが壊れないよう騎乗位で優しく挿れて、徐々にスピードUP! 大量",
8
+ "genres": [
9
+ "コスプレ",
10
+ "潮吹き",
11
+ "女優",
12
+ "複数プレイ"
13
+ ],
14
+ "label": "XANADU",
15
+ "maker": "プレステージ",
16
+ "movie_length": 7200,
17
+ "page": "http://www.prestige-av.com/item/prestige/XND-023",
18
+ "release_date": "2009-06-20",
19
+ "sample_images": [
20
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_0_xnd-023.jpg",
21
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_1_xnd-023.jpg",
22
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_2_xnd-023.jpg",
23
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_3_xnd-023.jpg",
24
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_4_xnd-023.jpg",
25
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_5_xnd-023.jpg",
26
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_6_xnd-023.jpg",
27
+ "http://image.prestige-av.com/images/prestige/xnd/023/cap_e_7_xnd-023.jpg"
28
+ ],
29
+ "series": "アメスク",
30
+ "thumbnail_image": "http://image.prestige-av.com/images/prestige/xnd/023/pf_p_xnd-023.jpg",
31
+ "title": "アメスク 23"
32
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "actresses": [
3
+ "美竹涼子"
4
+ ],
5
+ "code": "XV-100",
6
+ "cover_image": "http://pics.dmm.co.jp/mono/movie/adult/60xv100/60xv100pl.jpg",
7
+ "genres": [
8
+ "単体作品",
9
+ "美少女"
10
+ ],
11
+ "label": "サマンサ",
12
+ "maker": "マックスエー",
13
+ "movie_length": 3600,
14
+ "page": "http://www.javlibrary.com/ja/?v=javlibyj5y",
15
+ "release_date": "2002-12-20",
16
+ "thumbnail_image": "http://pics.dmm.co.jp/mono/movie/adult/60xv100/60xv100pl.jpg",
17
+ "title": "淫口 美竹涼子"
18
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "actresses": [
3
+ "藤嶋唯"
4
+ ],
5
+ "code": "XV-1000",
6
+ "cover_image": "http://pics.dmm.co.jp/mono/movie/adult/60xv1000/60xv1000pl.jpg",
7
+ "directors": [
8
+ "pochomquin"
9
+ ],
10
+ "genres": [
11
+ "アイドル",
12
+ "デビュー作品",
13
+ "騎乗位",
14
+ "電マ",
15
+ "デジモ"
16
+ ],
17
+ "label": "MAX-A",
18
+ "maker": "マックスエー",
19
+ "movie_length": 7200,
20
+ "page": "http://www.javlibrary.com/ja/?v=javlicjv6u",
21
+ "release_date": "2012-02-10",
22
+ "thumbnail_image": "http://pics.dmm.co.jp/mono/movie/adult/60xv1000/60xv1000pl.jpg",
23
+ "title": "New Comer 現役イメージアイドルAV転身、本番了解!! 藤嶋唯"
24
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "actresses": [
3
+ "西新宿美脚OL編"
4
+ ],
5
+ "code": "YRH-008",
6
+ "cover_image": "http://image.prestige-av.com/images/prestige/yrh/008/pb_e_yrh-008.jpg",
7
+ "description": "通販限定商品!生写真7枚付きの特典商品です。本数限定となりますのでお早めにお求め下さい!!都心で働く欲求不満なインテリOLをナンパ!性行為が始まればカメラ忘れてHに邁進!高身長OLは小柄な男をジュルジュルと音を立てながら全身リップ口撃!騎乗位で快感を貪り尽くす!!美女3名同時に男一人が相手になれば、超濃厚なハーレムプレイに!スーツが似合うスタイル抜群なOL達の痴態は淫らでエロ過ぎです!!",
8
+ "genres": [
9
+ "通販限定",
10
+ "アナル舐め",
11
+ "職業",
12
+ "複数プレイ"
13
+ ],
14
+ "label": "よろず本舗",
15
+ "maker": "プレステージ",
16
+ "movie_length": 14400,
17
+ "page": "http://www.prestige-av.com/item/prestige/YRH-008",
18
+ "release_date": "2013-08-01",
19
+ "sample_images": [
20
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_0_yrh-008.jpg",
21
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_1_yrh-008.jpg",
22
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_2_yrh-008.jpg",
23
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_3_yrh-008.jpg",
24
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_4_yrh-008.jpg",
25
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_5_yrh-008.jpg",
26
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_6_yrh-008.jpg",
27
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_7_yrh-008.jpg",
28
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_8_yrh-008.jpg",
29
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_9_yrh-008.jpg",
30
+ "http://image.prestige-av.com/images/prestige/yrh/008/cap_e_10_yrh-008.jpg"
31
+ ],
32
+ "series": "働くオンナ猟り",
33
+ "thumbnail_image": "http://image.prestige-av.com/images/prestige/yrh/008/pf_p_yrh-008.jpg",
34
+ "title": "働くオンナ猟り vol.02+生写真7枚付き"
35
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "code": "YRZ-009",
3
+ "cover_image": "http://image.prestige-av.com/images/prestige/yrz/009/pb_e_yrz-009.jpg",
4
+ "description": "通販限定商品!未公開映像収録DVD(オナニー&OL2人でフェラと手コキ 27min)の特典付き商品です。本数限定となりますのでお早めにお求め下さい!!大人気OLナンパシリーズ。20代のOLに次々声掛け、ゲットしたらフェラさせたりAV撮影慣行。1人で着いてきた欲求不満OLは美尻にかぶり付いて舐められ本番で乱れる!可愛らしい3人組は1人ずつ部屋でH。スーツ姿の美女はパンツを切り抜き、糸引くほど濡れたマ○コを味見され手マンで大量潮吹き!頼まれれば男の肛門に音を立てしゃぶり付く!バック中心に打ち込まれ快感を堪能。2人目の長身美女はシャワールームで服の上から濡らされながらHに突入。立ちバックでピストンされ、下からも打ち込まれヨガリ続ける!3人目の舌っ足らずにしゃ",
5
+ "genres": [
6
+ "通販限定",
7
+ "アナル舐め",
8
+ "潮吹き",
9
+ "職業"
10
+ ],
11
+ "label": "よろず企画",
12
+ "maker": "プレステージ",
13
+ "movie_length": 14400,
14
+ "page": "http://www.prestige-av.com/item/prestige/YRZ-009",
15
+ "release_date": "2011-07-01",
16
+ "sample_images": [
17
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_0_yrz-009.jpg",
18
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_1_yrz-009.jpg",
19
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_2_yrz-009.jpg",
20
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_3_yrz-009.jpg",
21
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_4_yrz-009.jpg",
22
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_5_yrz-009.jpg",
23
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_6_yrz-009.jpg",
24
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_7_yrz-009.jpg",
25
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_8_yrz-009.jpg",
26
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_9_yrz-009.jpg",
27
+ "http://image.prestige-av.com/images/prestige/yrz/009/cap_e_10_yrz-009.jpg"
28
+ ],
29
+ "series": "働くオンナ獲り",
30
+ "thumbnail_image": "http://image.prestige-av.com/images/prestige/yrz/009/pf_p_yrz-009.jpg",
31
+ "title": "働くオンナ獲り vol.6+未公開映像DVD付き(オナニー&OL2人でフェラと手コキ 27min)"
32
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "actresses": [
3
+ "北川エリカ"
4
+ ],
5
+ "code": "ZEX-068",
6
+ "cover_image": "http://dip-av.jp/images/products/L/ZEX-068.jpg",
7
+ "description": "色白巨乳美女が黒人FUCK!貪り尽くして淫ら過ぎる!濃厚なベロキスと欲深い愛撫の攻防の果てに、黒くて長くてぶっといチ○ポとずっぽしズコバコ求愛活動!華奢な肉体がぶっ壊れんばかりにハメ狂う本能任せの意人種FUCKが野蛮極まるアクメを大量生産!",
8
+ "genres": [
9
+ "巨根"
10
+ ],
11
+ "label": "ピーターズMAX",
12
+ "maker": "ピーターズMAX",
13
+ "movie_length": 7200,
14
+ "page": "http://dip-av.jp/detail.php?hinban=ZEX-068",
15
+ "release_date": "2014-03-09",
16
+ "thumbnail_image": "http://dip-av.jp/images/products/S/ZEX-068.jpg",
17
+ "title": "カリでか極太チ〇コを抜けなくなるほど締めつける極小マ〇コ 北川エリカ"
18
+ }
@@ -0,0 +1,76 @@
1
+ require 'minitest/autorun'
2
+ require 'active_support/core_ext/hash/keys'
3
+ require 'active_support/core_ext/string/inflections'
4
+ require 'active_support/json'
5
+ require 'hashdiff'
6
+ require 'opendmm'
7
+
8
+ I18n.enforce_available_locales = false
9
+
10
+ class FixtureTest < Minitest::Test
11
+ def load_product(path)
12
+ json = File.read(path)
13
+ product = ActiveSupport::JSON.decode(json).symbolize_keys
14
+ product[:release_date] = Date.parse(product[:release_date]) if product[:release_date]
15
+ product[:__extra].try(:symbolize_keys!)
16
+ product
17
+ end
18
+
19
+ def assert_has_basic_keys(product)
20
+ %i(code title thumbnail_image cover_image).each do |key|
21
+ assert product[key], "Key #{key} should not be absent"
22
+ end
23
+ end
24
+
25
+ def assert_no_unknown_keys(product)
26
+ known_keys = {
27
+ actresses: Array,
28
+ actress_types: Array,
29
+ boobs: String,
30
+ brand: String,
31
+ categories: Array,
32
+ code: String,
33
+ cover_image: String,
34
+ description: String,
35
+ directors: Array,
36
+ genres: Array,
37
+ label: String,
38
+ maker: String,
39
+ movie_length: Fixnum,
40
+ page: String,
41
+ release_date: Date,
42
+ sample_images: Array,
43
+ scenes: Array,
44
+ series: String,
45
+ subtitle: String,
46
+ theme: String,
47
+ thumbnail_image: String,
48
+ title: String,
49
+ __extra: Hash,
50
+ }
51
+ product.each do |key, value|
52
+ klass = known_keys[key]
53
+ assert klass, "Unknown key: #{key}"
54
+ assert_equal klass, value.class, "Value #{key} should be a #{known_keys[key]}, while #{value} provided" if value
55
+ end
56
+ end
57
+ end
58
+
59
+ Dir[File.dirname(__FILE__) + '/fixtures/*.json'].each do |path|
60
+ name = File.basename(path, '.json')
61
+ eval <<-TESTCASE
62
+
63
+ class FixtureTest
64
+ def test_#{name.parameterize.underscore}
65
+ expected = load_product('#{path}')
66
+ actual = OpenDMM.search('#{name}')
67
+ assert_has_basic_keys(actual)
68
+ assert_no_unknown_keys(actual)
69
+ assert_equal expected, actual, HashDiff.diff(expected, actual)
70
+ rescue Errno::ETIMEDOUT => e
71
+ raise unless ENV['GFW_MODE']
72
+ end
73
+ end
74
+
75
+ TESTCASE
76
+ end
metadata ADDED
@@ -0,0 +1,454 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: opendmm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jun Zhou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hashdiff
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: chronic_duration
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: httparty
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: nokogiri
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description:
112
+ email:
113
+ - pinepara@gmail.com
114
+ executables:
115
+ - opendmm
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - ".travis.yml"
121
+ - Gemfile
122
+ - README.md
123
+ - Rakefile
124
+ - bin/opendmm
125
+ - lib/opendmm.rb
126
+ - lib/opendmm/maker.rb
127
+ - lib/opendmm/makers/aknr.rb
128
+ - lib/opendmm/makers/ako3.rb
129
+ - lib/opendmm/makers/anna_and_hanako.rb
130
+ - lib/opendmm/makers/apa.rb
131
+ - lib/opendmm/makers/aroma.rb
132
+ - lib/opendmm/makers/attackers.rb
133
+ - lib/opendmm/makers/aurora.rb
134
+ - lib/opendmm/makers/baltan.rb
135
+ - lib/opendmm/makers/befree.rb
136
+ - lib/opendmm/makers/bi.rb
137
+ - lib/opendmm/makers/bijin_majo.rb
138
+ - lib/opendmm/makers/candy.rb
139
+ - lib/opendmm/makers/caribbean.rb
140
+ - lib/opendmm/makers/dip.rb
141
+ - lib/opendmm/makers/dmm_collection.rb
142
+ - lib/opendmm/makers/ebody.rb
143
+ - lib/opendmm/makers/ideapocket.rb
144
+ - lib/opendmm/makers/kawaii.rb
145
+ - lib/opendmm/makers/kira_kira.rb
146
+ - lib/opendmm/makers/madonna.rb
147
+ - lib/opendmm/makers/moodyz.rb
148
+ - lib/opendmm/makers/munekyunkissa.rb
149
+ - lib/opendmm/makers/opera.rb
150
+ - lib/opendmm/makers/oppai.rb
151
+ - lib/opendmm/makers/premium.rb
152
+ - lib/opendmm/makers/prestige.rb
153
+ - lib/opendmm/makers/s1.rb
154
+ - lib/opendmm/makers/sod.rb
155
+ - lib/opendmm/makers/tameikegoro.rb
156
+ - lib/opendmm/makers/to_satsu.rb
157
+ - lib/opendmm/makers/waap.rb
158
+ - lib/opendmm/search_engines/jav_library.rb
159
+ - lib/opendmm/utils.rb
160
+ - lib/opendmm/version.rb
161
+ - opendmm.gemspec
162
+ - test/fixtures/ABP-013.json
163
+ - test/fixtures/ABS-014.json
164
+ - test/fixtures/ABY-003.json
165
+ - test/fixtures/ADN-019.json
166
+ - test/fixtures/AIR-017.json
167
+ - test/fixtures/AKO-011.json
168
+ - test/fixtures/ALB-182.json
169
+ - test/fixtures/ANND-066.json
170
+ - test/fixtures/AP-001.json
171
+ - test/fixtures/APAA-182.json
172
+ - test/fixtures/APAK-051.json
173
+ - test/fixtures/ARM-191.json
174
+ - test/fixtures/ARMG-223.json
175
+ - test/fixtures/ATID-183.json
176
+ - test/fixtures/BBI-104.json
177
+ - test/fixtures/BEB-001.json
178
+ - test/fixtures/BF-175.json
179
+ - test/fixtures/BID-017.json
180
+ - test/fixtures/BIJN-006.json
181
+ - test/fixtures/BLK-049.json
182
+ - test/fixtures/BRA-002.json
183
+ - test/fixtures/BWB-005.json
184
+ - test/fixtures/CHN-008.json
185
+ - test/fixtures/CHS-015.json
186
+ - test/fixtures/CLUB-003.json
187
+ - test/fixtures/CND-012.json
188
+ - test/fixtures/CWM-156.json
189
+ - test/fixtures/Carib 021511-620.json
190
+ - test/fixtures/DCOL-017.json
191
+ - test/fixtures/DGL-007.json
192
+ - test/fixtures/DOM-045.json
193
+ - test/fixtures/EBOD-109.json
194
+ - test/fixtures/ECB-078.json
195
+ - test/fixtures/EDD-189.json
196
+ - test/fixtures/ESK-232.json
197
+ - test/fixtures/EZD-369.json
198
+ - test/fixtures/FSET-399.json
199
+ - test/fixtures/HAZ-009.json
200
+ - test/fixtures/HON-001.json
201
+ - test/fixtures/IDBD-447.json
202
+ - test/fixtures/INU-013.json
203
+ - test/fixtures/IPSD-041.json
204
+ - test/fixtures/IPTD-464.json
205
+ - test/fixtures/IPTD-629.json
206
+ - test/fixtures/IPZ-005.json
207
+ - test/fixtures/JBD-153.json
208
+ - test/fixtures/JBS-004.json
209
+ - test/fixtures/JOB-010.json
210
+ - test/fixtures/JUC-285.json
211
+ - test/fixtures/JUFD-137.json
212
+ - test/fixtures/JUX-007.json
213
+ - test/fixtures/JUX-119.json
214
+ - test/fixtures/KAWD-249.json
215
+ - test/fixtures/KIRD-147.json
216
+ - test/fixtures/KISD-042.json
217
+ - test/fixtures/LLR-005.json
218
+ - test/fixtures/MAS-042.json
219
+ - test/fixtures/MBD-148.json
220
+ - test/fixtures/MDC-002.json
221
+ - test/fixtures/MDYD-544.json
222
+ - test/fixtures/MEK-008.json
223
+ - test/fixtures/MIAD-490.json
224
+ - test/fixtures/MIDD-599.json
225
+ - test/fixtures/MIDD-643.json
226
+ - test/fixtures/MIDD-644.json
227
+ - test/fixtures/MIDE-004.json
228
+ - test/fixtures/MIGD-284.json
229
+ - test/fixtures/MIGD-336.json
230
+ - test/fixtures/MIGD-337.json
231
+ - test/fixtures/MIMK-005.json
232
+ - test/fixtures/MINT-004.json
233
+ - test/fixtures/MIQD-010.json
234
+ - test/fixtures/MIRD-071.json
235
+ - test/fixtures/MIRD-072.json
236
+ - test/fixtures/MIRD-073.json
237
+ - test/fixtures/MIXS-005.json
238
+ - test/fixtures/MMY-010.json
239
+ - test/fixtures/NAGE-001.json
240
+ - test/fixtures/NDR-001.json
241
+ - test/fixtures/NOF-003.json
242
+ - test/fixtures/NPS-130.json
243
+ - test/fixtures/OBA-045.json
244
+ - test/fixtures/ONSD-570.json
245
+ - test/fixtures/OPUD-125.json
246
+ - test/fixtures/OSR-003.json
247
+ - test/fixtures/PARM-028.json
248
+ - test/fixtures/PBD-134.json
249
+ - test/fixtures/PGD-306.json
250
+ - test/fixtures/PJD-085.json
251
+ - test/fixtures/PPB-008.json
252
+ - test/fixtures/PPP-001.json
253
+ - test/fixtures/PPPD-102.json
254
+ - test/fixtures/PPSD-028.json
255
+ - test/fixtures/PPT-004.json
256
+ - test/fixtures/PTS-230.json
257
+ - test/fixtures/PTV-001.json
258
+ - test/fixtures/PXD-027.json
259
+ - test/fixtures/RAW-005.json
260
+ - test/fixtures/RBD-183.json
261
+ - test/fixtures/SAD-031.json
262
+ - test/fixtures/SDDE-312.json
263
+ - test/fixtures/SDMT-802.json
264
+ - test/fixtures/SDMU-008.json
265
+ - test/fixtures/SDNM-011.json
266
+ - test/fixtures/SET-007.json
267
+ - test/fixtures/SGA-001.json
268
+ - test/fixtures/SHKD-415.json
269
+ - test/fixtures/SNIS-041.json
270
+ - test/fixtures/SOE-259.json
271
+ - test/fixtures/SPC-001.json
272
+ - test/fixtures/SPS-008.json
273
+ - test/fixtures/SRS-015.json
274
+ - test/fixtures/SSPD-077.json
275
+ - test/fixtures/STAR-359.json
276
+ - test/fixtures/SUPD-065.json
277
+ - test/fixtures/TDT-018.json
278
+ - test/fixtures/TMAM-034.json
279
+ - test/fixtures/TMCY-039.json
280
+ - test/fixtures/TMDI-040.json
281
+ - test/fixtures/TMEM-044.json
282
+ - test/fixtures/TMVI-042.json
283
+ - test/fixtures/TRD-062.json
284
+ - test/fixtures/URE-011.json
285
+ - test/fixtures/WA-201.json
286
+ - test/fixtures/WAT-003.json
287
+ - test/fixtures/WPC-002.json
288
+ - test/fixtures/WSS-231.json
289
+ - test/fixtures/XND-023.json
290
+ - test/fixtures/XV-100.json
291
+ - test/fixtures/XV-1000.json
292
+ - test/fixtures/YRH-008.json
293
+ - test/fixtures/YRZ-009.json
294
+ - test/fixtures/ZEX-068.json
295
+ - test/fixtures_test.rb
296
+ homepage:
297
+ licenses:
298
+ - MIT
299
+ metadata: {}
300
+ post_install_message:
301
+ rdoc_options: []
302
+ require_paths:
303
+ - lib
304
+ required_ruby_version: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - ">="
307
+ - !ruby/object:Gem::Version
308
+ version: '0'
309
+ required_rubygems_version: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ requirements: []
315
+ rubyforge_project:
316
+ rubygems_version: 2.2.2
317
+ signing_key:
318
+ specification_version: 4
319
+ summary: 'OpenDMM: an open-source Japanese AV search engine'
320
+ test_files:
321
+ - test/fixtures/ABP-013.json
322
+ - test/fixtures/ABS-014.json
323
+ - test/fixtures/ABY-003.json
324
+ - test/fixtures/ADN-019.json
325
+ - test/fixtures/AIR-017.json
326
+ - test/fixtures/AKO-011.json
327
+ - test/fixtures/ALB-182.json
328
+ - test/fixtures/ANND-066.json
329
+ - test/fixtures/AP-001.json
330
+ - test/fixtures/APAA-182.json
331
+ - test/fixtures/APAK-051.json
332
+ - test/fixtures/ARM-191.json
333
+ - test/fixtures/ARMG-223.json
334
+ - test/fixtures/ATID-183.json
335
+ - test/fixtures/BBI-104.json
336
+ - test/fixtures/BEB-001.json
337
+ - test/fixtures/BF-175.json
338
+ - test/fixtures/BID-017.json
339
+ - test/fixtures/BIJN-006.json
340
+ - test/fixtures/BLK-049.json
341
+ - test/fixtures/BRA-002.json
342
+ - test/fixtures/BWB-005.json
343
+ - test/fixtures/CHN-008.json
344
+ - test/fixtures/CHS-015.json
345
+ - test/fixtures/CLUB-003.json
346
+ - test/fixtures/CND-012.json
347
+ - test/fixtures/CWM-156.json
348
+ - test/fixtures/Carib 021511-620.json
349
+ - test/fixtures/DCOL-017.json
350
+ - test/fixtures/DGL-007.json
351
+ - test/fixtures/DOM-045.json
352
+ - test/fixtures/EBOD-109.json
353
+ - test/fixtures/ECB-078.json
354
+ - test/fixtures/EDD-189.json
355
+ - test/fixtures/ESK-232.json
356
+ - test/fixtures/EZD-369.json
357
+ - test/fixtures/FSET-399.json
358
+ - test/fixtures/HAZ-009.json
359
+ - test/fixtures/HON-001.json
360
+ - test/fixtures/IDBD-447.json
361
+ - test/fixtures/INU-013.json
362
+ - test/fixtures/IPSD-041.json
363
+ - test/fixtures/IPTD-464.json
364
+ - test/fixtures/IPTD-629.json
365
+ - test/fixtures/IPZ-005.json
366
+ - test/fixtures/JBD-153.json
367
+ - test/fixtures/JBS-004.json
368
+ - test/fixtures/JOB-010.json
369
+ - test/fixtures/JUC-285.json
370
+ - test/fixtures/JUFD-137.json
371
+ - test/fixtures/JUX-007.json
372
+ - test/fixtures/JUX-119.json
373
+ - test/fixtures/KAWD-249.json
374
+ - test/fixtures/KIRD-147.json
375
+ - test/fixtures/KISD-042.json
376
+ - test/fixtures/LLR-005.json
377
+ - test/fixtures/MAS-042.json
378
+ - test/fixtures/MBD-148.json
379
+ - test/fixtures/MDC-002.json
380
+ - test/fixtures/MDYD-544.json
381
+ - test/fixtures/MEK-008.json
382
+ - test/fixtures/MIAD-490.json
383
+ - test/fixtures/MIDD-599.json
384
+ - test/fixtures/MIDD-643.json
385
+ - test/fixtures/MIDD-644.json
386
+ - test/fixtures/MIDE-004.json
387
+ - test/fixtures/MIGD-284.json
388
+ - test/fixtures/MIGD-336.json
389
+ - test/fixtures/MIGD-337.json
390
+ - test/fixtures/MIMK-005.json
391
+ - test/fixtures/MINT-004.json
392
+ - test/fixtures/MIQD-010.json
393
+ - test/fixtures/MIRD-071.json
394
+ - test/fixtures/MIRD-072.json
395
+ - test/fixtures/MIRD-073.json
396
+ - test/fixtures/MIXS-005.json
397
+ - test/fixtures/MMY-010.json
398
+ - test/fixtures/NAGE-001.json
399
+ - test/fixtures/NDR-001.json
400
+ - test/fixtures/NOF-003.json
401
+ - test/fixtures/NPS-130.json
402
+ - test/fixtures/OBA-045.json
403
+ - test/fixtures/ONSD-570.json
404
+ - test/fixtures/OPUD-125.json
405
+ - test/fixtures/OSR-003.json
406
+ - test/fixtures/PARM-028.json
407
+ - test/fixtures/PBD-134.json
408
+ - test/fixtures/PGD-306.json
409
+ - test/fixtures/PJD-085.json
410
+ - test/fixtures/PPB-008.json
411
+ - test/fixtures/PPP-001.json
412
+ - test/fixtures/PPPD-102.json
413
+ - test/fixtures/PPSD-028.json
414
+ - test/fixtures/PPT-004.json
415
+ - test/fixtures/PTS-230.json
416
+ - test/fixtures/PTV-001.json
417
+ - test/fixtures/PXD-027.json
418
+ - test/fixtures/RAW-005.json
419
+ - test/fixtures/RBD-183.json
420
+ - test/fixtures/SAD-031.json
421
+ - test/fixtures/SDDE-312.json
422
+ - test/fixtures/SDMT-802.json
423
+ - test/fixtures/SDMU-008.json
424
+ - test/fixtures/SDNM-011.json
425
+ - test/fixtures/SET-007.json
426
+ - test/fixtures/SGA-001.json
427
+ - test/fixtures/SHKD-415.json
428
+ - test/fixtures/SNIS-041.json
429
+ - test/fixtures/SOE-259.json
430
+ - test/fixtures/SPC-001.json
431
+ - test/fixtures/SPS-008.json
432
+ - test/fixtures/SRS-015.json
433
+ - test/fixtures/SSPD-077.json
434
+ - test/fixtures/STAR-359.json
435
+ - test/fixtures/SUPD-065.json
436
+ - test/fixtures/TDT-018.json
437
+ - test/fixtures/TMAM-034.json
438
+ - test/fixtures/TMCY-039.json
439
+ - test/fixtures/TMDI-040.json
440
+ - test/fixtures/TMEM-044.json
441
+ - test/fixtures/TMVI-042.json
442
+ - test/fixtures/TRD-062.json
443
+ - test/fixtures/URE-011.json
444
+ - test/fixtures/WA-201.json
445
+ - test/fixtures/WAT-003.json
446
+ - test/fixtures/WPC-002.json
447
+ - test/fixtures/WSS-231.json
448
+ - test/fixtures/XND-023.json
449
+ - test/fixtures/XV-100.json
450
+ - test/fixtures/XV-1000.json
451
+ - test/fixtures/YRH-008.json
452
+ - test/fixtures/YRZ-009.json
453
+ - test/fixtures/ZEX-068.json
454
+ - test/fixtures_test.rb