opendmm 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/opendmm/engines/av_entertainments.rb +1 -1
- data/lib/opendmm/engines/tokyo_hot.rb +38 -39
- data/lib/opendmm/movie.rb +2 -2
- data/lib/opendmm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fef917ffa04e30b83e92fcdce69f4d92c83006de
|
4
|
+
data.tar.gz: 3abff14037ac54df6af8ef421ca7d8ee538f0aa3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e86153d2202b017d9b5696c3df5046e306b2863bbb0c25667e057af9da6213b9da0c22b5340a0242c9b8e36fab1e8644cb94fc2cb087d2237a286bafd0b80ca1
|
7
|
+
data.tar.gz: 2797b8aa6aa8d380e0e335c22206605f55a2cd2268d85c0da8fea08624898a714984474dffb5e9775a4512b89c7da02cd06c41bf7fa99b0510a5a5c97e37222b
|
@@ -22,7 +22,7 @@ module OpenDMM
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def self.normalize(query)
|
25
|
-
query.scan(/((?:S2|2D|3D|[a-z]){2,6}?)[-_\s]?(
|
25
|
+
query.scan(/((?:S2|2D|3D|[a-z]){2,6}?)[-_\s]?([SM]?\d{2,5})/i).map do |pair|
|
26
26
|
alpha = pair[0].upcase
|
27
27
|
digit = pair[1]
|
28
28
|
case alpha
|
@@ -7,14 +7,12 @@ module OpenDMM
|
|
7
7
|
def self.search(query)
|
8
8
|
query = normalize(query)
|
9
9
|
return unless query
|
10
|
-
|
11
|
-
return MovieK.new(query).details if query.start_with? 'k'
|
10
|
+
Movie.new(query).details
|
12
11
|
end
|
13
12
|
|
14
13
|
private
|
15
14
|
|
16
15
|
def self.normalize(query)
|
17
|
-
# return unless query =~ /Tokyo[-_\s]*Hot/
|
18
16
|
return unless query =~ /(k|n)(\d{3,4})/
|
19
17
|
"#{$1}#{$2.rjust(4, '0')}"
|
20
18
|
end
|
@@ -23,54 +21,55 @@ module OpenDMM
|
|
23
21
|
include HTTParty
|
24
22
|
base_uri 'www.tokyo-hot.com'
|
25
23
|
|
26
|
-
def self.
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.list_k
|
31
|
-
@@list_k ||= get '/j/k_video0000_j.html'
|
24
|
+
def self.search(query)
|
25
|
+
get "http://www.tokyo-hot.com/product/?q=#{CGI::escape(query)}"
|
32
26
|
end
|
33
27
|
end
|
34
28
|
|
35
|
-
class
|
36
|
-
def initialize(query)
|
37
|
-
|
38
|
-
|
39
|
-
@
|
40
|
-
|
41
|
-
|
42
|
-
link = @html.at_xpath("//a[contains(@href, '#{@query}')]")
|
43
|
-
@details.page = link['href']
|
44
|
-
@details.cover_image = link.at_css('img')['src']
|
29
|
+
class Search
|
30
|
+
def initialize(query, response)
|
31
|
+
@query = query
|
32
|
+
@response = response
|
33
|
+
@html = Nokogiri.HTML @response
|
34
|
+
end
|
45
35
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
50
|
-
@details.title = table.at_xpath('tr[1]').text
|
51
|
-
@details.actresses = table.at_xpath('tr[2]').text.squish.remove('--').split(/[\s、,]/)
|
52
|
-
@details.release_date = table.at_xpath('tr[3]').text.remove('更新日')
|
36
|
+
def result
|
37
|
+
candidate = @html.at_css('#main > ul > li > a')['href']
|
38
|
+
URI.join(@response.request.last_uri.to_s, candidate).to_s
|
53
39
|
end
|
54
40
|
end
|
55
41
|
|
56
|
-
class
|
42
|
+
class Movie < OpenDMM::Movie
|
57
43
|
def initialize(query)
|
58
|
-
|
44
|
+
search = Search.new(query, Site.search(query))
|
45
|
+
super(query, Site.get(search.result))
|
59
46
|
|
60
|
-
@details.
|
61
|
-
@details.maker = 'Tokyo Hot'
|
47
|
+
@details.maker = 'Tokyo Hot'
|
62
48
|
|
63
|
-
|
64
|
-
@details.
|
65
|
-
@details.
|
49
|
+
@details.title = @html.at_css('#container > div.pagetitle > h2').text
|
50
|
+
@details.cover_image = @html.at_css('#container > div.movie.cf > div.in > div.flowplayer > video')['poster']
|
51
|
+
@details.description = @html.at_css('#main > div.contents > div.sentence').text
|
66
52
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
53
|
+
@html.css('#main > div.contents > div.infowrapper > dl > dt').each do |dt|
|
54
|
+
dd = dt.next_element
|
55
|
+
case dt.text
|
56
|
+
when /出演者/
|
57
|
+
@details.actresses = dd.css('a').map(&:text)
|
58
|
+
when /シリーズ/
|
59
|
+
@details.series = dd.text
|
60
|
+
when /カテゴリ/
|
61
|
+
@details.categories = dd.css('a').map(&:text)
|
62
|
+
when /配信開始日/
|
63
|
+
@details.release_date = dd.text
|
64
|
+
when /収録時間/
|
65
|
+
@details.movie_length = dd.text
|
66
|
+
when /作品番号/
|
67
|
+
@details.code = 'Tokyo Hot ' + dd.text
|
68
|
+
end
|
72
69
|
end
|
73
|
-
|
70
|
+
|
71
|
+
@details.sample_images = @html.css('#main > div.contents > div.scap > a,
|
72
|
+
#main > div.contents > div.vcap > a').map { |a| a['href'] }
|
74
73
|
end
|
75
74
|
end
|
76
75
|
end
|
data/lib/opendmm/movie.rb
CHANGED
@@ -81,11 +81,11 @@ module OpenDMM
|
|
81
81
|
when :String
|
82
82
|
value.to_s.squish
|
83
83
|
when :URI
|
84
|
-
URI.join(self.base_uri, value).to_s
|
84
|
+
URI.join(self.base_uri, URI.escape(value)).to_s
|
85
85
|
when :URIArray
|
86
86
|
raise "Field #{key} not an array: #{value}" unless value.instance_of? Array
|
87
87
|
value.map do |uri|
|
88
|
-
URI.join(self.base_uri, uri
|
88
|
+
URI.join(self.base_uri, URI.escape(uri)).to_s
|
89
89
|
end.sort
|
90
90
|
else
|
91
91
|
raise ArgumentError.new("Unknown value type: #{type}")
|
data/lib/opendmm/version.rb
CHANGED
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: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Zhou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|