rdmm 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +184 -24
- data/lib/rdmm.rb +15 -0
- data/lib/rdmm/client.rb +81 -13
- data/lib/rdmm/queries/base_query.rb +0 -12
- data/lib/rdmm/queries/list_actresses_query.rb +84 -0
- data/lib/rdmm/queries/list_authors_query.rb +30 -0
- data/lib/rdmm/queries/list_floors_query.rb +6 -0
- data/lib/rdmm/queries/list_genres_query.rb +30 -0
- data/lib/rdmm/queries/list_items_query.rb +12 -0
- data/lib/rdmm/queries/list_makers_query.rb +30 -0
- data/lib/rdmm/queries/list_series_query.rb +12 -0
- data/lib/rdmm/resources/actress_resource.rb +109 -0
- data/lib/rdmm/resources/author_resource.rb +30 -0
- data/lib/rdmm/resources/floor_resource.rb +40 -0
- data/lib/rdmm/resources/genre_resource.rb +26 -0
- data/lib/rdmm/resources/maker_resource.rb +25 -0
- data/lib/rdmm/resources/series_resource.rb +5 -5
- data/lib/rdmm/responses/list_actresses_response.rb +12 -0
- data/lib/rdmm/responses/list_authors_response.rb +12 -0
- data/lib/rdmm/responses/list_floors_response.rb +23 -0
- data/lib/rdmm/responses/list_genres_response.rb +12 -0
- data/lib/rdmm/responses/list_makers_response.rb +12 -0
- data/lib/rdmm/version.rb +1 -1
- data/rdmm.gemspec +3 -2
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe940e5aad4abe9b0e14b6079c65e56cd6dd1aa5
|
4
|
+
data.tar.gz: eafea0273111151c1e2d81db7dc75961afe931cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34aa24a950848b870d755ee50411482c2839e31aa9a10e61ea90ce5d7f86c9a0333434d1f06be7b2174e1c0e96246efb15edb346e0650ea142373374905a5e2c
|
7
|
+
data.tar.gz: 22d6e35a24d8d9f7c6c14735ceb5dc472526c861d1c94a0dbef22c7df98c5f73081aacadd91bf7133486267dfb4385c5d29f8f2feb844300f7d35e407e5a81a4
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## 0.1.0
|
2
|
+
|
3
|
+
- Add `Rdmm::Client#list_actresses`
|
4
|
+
- Add `Rdmm::Client#list_authors`
|
5
|
+
- Add `Rdmm::Client#list_floors`
|
6
|
+
- Add `Rdmm::Client#list_genres`
|
7
|
+
- Add `Rdmm::Client#list_makers`
|
8
|
+
- Rename `#series_id` to `#id` on `Rdmm::Resources::SeriesResource`
|
9
|
+
|
10
|
+
## 0.0.4
|
11
|
+
|
12
|
+
- Declare required ruby version on gemspec
|
13
|
+
|
1
14
|
## 0.0.3
|
2
15
|
|
3
16
|
- Add `Rdmm::Responses::BaseResponse#first_position`
|
data/README.md
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/rdmm.svg)](https://rubygems.org/gems/rdmm)
|
5
5
|
[![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/github/r7kamura/rdmm)
|
6
6
|
|
7
|
-
An API Client library for DMM written in Ruby.
|
7
|
+
An API Client library for DMM Web Service written in Ruby.
|
8
|
+
|
9
|
+
See https://affiliate.dmm.com/api/ for more details about DMM Web Service.
|
8
10
|
|
9
11
|
## Requirements
|
10
12
|
|
@@ -39,6 +41,66 @@ require "rdmm"
|
|
39
41
|
client = Rdmm::Client.new(affiliate_id: "dummy", api_id: "dummy")
|
40
42
|
```
|
41
43
|
|
44
|
+
### Rdmm::Client#list_actresses
|
45
|
+
|
46
|
+
Available options:
|
47
|
+
|
48
|
+
- `:id`
|
49
|
+
- `:birthday`
|
50
|
+
- `:bust`
|
51
|
+
- `:height`
|
52
|
+
- `:hip`
|
53
|
+
- `:hits`
|
54
|
+
- `:initial`
|
55
|
+
- `:keyword`
|
56
|
+
- `:offset`
|
57
|
+
- `:sort`
|
58
|
+
- `:waist`
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
client.list_actresses
|
62
|
+
```
|
63
|
+
|
64
|
+
`https://api.dmm.com/affiliate/v3/ActressSearch?affiliate_id=dummy&api_id=dummy`
|
65
|
+
|
66
|
+
### Rdmm::Client#list_authors
|
67
|
+
|
68
|
+
Available options:
|
69
|
+
|
70
|
+
- `:floor_id`
|
71
|
+
- `:hits`
|
72
|
+
- `:initial`
|
73
|
+
- `:offset`
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
client.list_authors(floor_id: 27)
|
77
|
+
```
|
78
|
+
|
79
|
+
`https://api.dmm.com/affiliate/v3/AuthorSearch?affiliate_id=dummy&api_id=dummy&floor_id=27`
|
80
|
+
|
81
|
+
### Rdmm::Client#list_floors
|
82
|
+
|
83
|
+
```ruby
|
84
|
+
client.list_floors
|
85
|
+
```
|
86
|
+
|
87
|
+
`https://api.dmm.com/affiliate/v3/FloorList?affiliate_id=dummy&api_id=dummy`
|
88
|
+
|
89
|
+
### Rdmm::Client#list_genres
|
90
|
+
|
91
|
+
Available options:
|
92
|
+
|
93
|
+
- `:floor_id`
|
94
|
+
- `:hits`
|
95
|
+
- `:initial`
|
96
|
+
- `:offset`
|
97
|
+
|
98
|
+
```ruby
|
99
|
+
client.list_genres(floor_id: 27)
|
100
|
+
```
|
101
|
+
|
102
|
+
`https://api.dmm.com/affiliate/v3/GenreSearch?affiliate_id=dummy&api_id=dummy&floor_id=27`
|
103
|
+
|
42
104
|
### Rdmm::Client#list_items
|
43
105
|
|
44
106
|
Available options:
|
@@ -63,6 +125,21 @@ client.list_items(site: "DMM.com")
|
|
63
125
|
|
64
126
|
`https://api.dmm.com/affiliate/v3/ItemList?affiliate_id=dummy&api_id=dummy&site=DMM.com`
|
65
127
|
|
128
|
+
### Rdmm::Client#list_makers
|
129
|
+
|
130
|
+
Available options:
|
131
|
+
|
132
|
+
- `:floor_id`
|
133
|
+
- `:hits`
|
134
|
+
- `:initial`
|
135
|
+
- `:offset`
|
136
|
+
|
137
|
+
```ruby
|
138
|
+
client.list_makers(floor_id: 27)
|
139
|
+
```
|
140
|
+
|
141
|
+
`https://api.dmm.com/affiliate/v3/MakerSearch?affiliate_id=dummy&api_id=dummy&floor_id=27`
|
142
|
+
|
66
143
|
### Rdmm::Client#list_series
|
67
144
|
|
68
145
|
Available options:
|
@@ -114,6 +191,51 @@ client.list_items(site: "DMM.com").map(&:title)
|
|
114
191
|
|
115
192
|
</details>
|
116
193
|
|
194
|
+
### Rdmm::Responses::BaseResponse#first_position
|
195
|
+
|
196
|
+
```ruby
|
197
|
+
client.list_items(site: "DMM.com").first_position
|
198
|
+
```
|
199
|
+
|
200
|
+
<details>
|
201
|
+
<summary>output</summary>
|
202
|
+
|
203
|
+
```ruby
|
204
|
+
1
|
205
|
+
```
|
206
|
+
|
207
|
+
</details>
|
208
|
+
|
209
|
+
### Rdmm::Responses::BaseResponse#has_next_page?
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
client.list_items(site: "DMM.com").has_next_page?
|
213
|
+
```
|
214
|
+
|
215
|
+
<details>
|
216
|
+
<summary>output</summary>
|
217
|
+
|
218
|
+
```ruby
|
219
|
+
true
|
220
|
+
```
|
221
|
+
|
222
|
+
</details>
|
223
|
+
|
224
|
+
### Rdmm::Responses::BaseResponse#result_count
|
225
|
+
|
226
|
+
```ruby
|
227
|
+
client.list_items(site: "DMM.com").result_count
|
228
|
+
```
|
229
|
+
|
230
|
+
<details>
|
231
|
+
<summary>output</summary>
|
232
|
+
|
233
|
+
```ruby
|
234
|
+
20
|
235
|
+
```
|
236
|
+
|
237
|
+
</details>
|
238
|
+
|
117
239
|
### Rdmm::Responses::BaseResponse#total_count
|
118
240
|
|
119
241
|
```ruby
|
@@ -129,6 +251,60 @@ client.list_items(site: "DMM.com").total_count
|
|
129
251
|
|
130
252
|
</details>
|
131
253
|
|
254
|
+
### Rdmm::Resources::ActressResource
|
255
|
+
|
256
|
+
Available attributes:
|
257
|
+
|
258
|
+
- `birthday`
|
259
|
+
- `blood_type`
|
260
|
+
- `bust`
|
261
|
+
- `cup`
|
262
|
+
- `height`
|
263
|
+
- `hobbies`
|
264
|
+
- `id`
|
265
|
+
- `image_url_large`
|
266
|
+
- `image_url_small`
|
267
|
+
- `list_url_digital`
|
268
|
+
- `list_url_mono`
|
269
|
+
- `list_url_monthly`
|
270
|
+
- `list_url_ppm`
|
271
|
+
- `list_url_rental`
|
272
|
+
- `name`
|
273
|
+
- `prefectures`
|
274
|
+
- `ruby`
|
275
|
+
- `waist`
|
276
|
+
|
277
|
+
### Rdmm::Resources::AuthorResource
|
278
|
+
|
279
|
+
Available attributes:
|
280
|
+
|
281
|
+
- `another_name`
|
282
|
+
- `id`
|
283
|
+
- `list_url`
|
284
|
+
- `name`
|
285
|
+
- `ruby`
|
286
|
+
|
287
|
+
### Rdmm::Resources::FloorResource
|
288
|
+
|
289
|
+
Available attributes:
|
290
|
+
|
291
|
+
- `code`
|
292
|
+
- `id`
|
293
|
+
- `name`
|
294
|
+
- `service_code`
|
295
|
+
- `service_name`
|
296
|
+
- `site_code`
|
297
|
+
- `site_name`
|
298
|
+
|
299
|
+
### Rdmm::Resources::GenreResource
|
300
|
+
|
301
|
+
Available attributes:
|
302
|
+
|
303
|
+
- `id`
|
304
|
+
- `list_url`
|
305
|
+
- `name`
|
306
|
+
- `ruby`
|
307
|
+
|
132
308
|
### Rdmm::Resources::ItemResource
|
133
309
|
|
134
310
|
Available attributes:
|
@@ -157,37 +333,21 @@ Available attributes:
|
|
157
333
|
- `url`
|
158
334
|
- `volume`
|
159
335
|
|
160
|
-
|
161
|
-
client.list_items(site: "DMM.com").first.title
|
162
|
-
```
|
336
|
+
### Rdmm::Resources::MakerResource
|
163
337
|
|
164
|
-
|
165
|
-
<summary>output</summary>
|
338
|
+
Available attributes:
|
166
339
|
|
167
|
-
|
168
|
-
|
169
|
-
|
340
|
+
- `id`
|
341
|
+
- `list_url`
|
342
|
+
- `name`
|
343
|
+
- `ruby`
|
170
344
|
|
171
|
-
</details>
|
172
345
|
|
173
346
|
### Rdmm::Resources::SeriesResource
|
174
347
|
|
175
348
|
Available attributes:
|
176
349
|
|
350
|
+
- `id`
|
177
351
|
- `list_url`
|
178
352
|
- `name`
|
179
353
|
- `ruby`
|
180
|
-
- `series_id`
|
181
|
-
|
182
|
-
```ruby
|
183
|
-
client.list_series(floor_id: 27).first.name
|
184
|
-
```
|
185
|
-
|
186
|
-
<details>
|
187
|
-
<summary>output</summary>
|
188
|
-
|
189
|
-
```ruby
|
190
|
-
"二四〇九階の彼女"
|
191
|
-
```
|
192
|
-
|
193
|
-
</details>
|
data/lib/rdmm.rb
CHANGED
@@ -1,11 +1,26 @@
|
|
1
1
|
require "rdmm/client"
|
2
2
|
require "rdmm/queries/base_query"
|
3
|
+
require "rdmm/queries/list_actresses_query"
|
4
|
+
require "rdmm/queries/list_authors_query"
|
5
|
+
require "rdmm/queries/list_floors_query"
|
6
|
+
require "rdmm/queries/list_genres_query"
|
3
7
|
require "rdmm/queries/list_items_query"
|
8
|
+
require "rdmm/queries/list_makers_query"
|
4
9
|
require "rdmm/queries/list_series_query"
|
5
10
|
require "rdmm/resources/base_resource"
|
11
|
+
require "rdmm/resources/actress_resource"
|
12
|
+
require "rdmm/resources/author_resource"
|
13
|
+
require "rdmm/resources/floor_resource"
|
14
|
+
require "rdmm/resources/genre_resource"
|
6
15
|
require "rdmm/resources/item_resource"
|
16
|
+
require "rdmm/resources/maker_resource"
|
7
17
|
require "rdmm/resources/series_resource"
|
8
18
|
require "rdmm/responses/base_response"
|
19
|
+
require "rdmm/responses/list_actresses_response"
|
20
|
+
require "rdmm/responses/list_authors_response"
|
21
|
+
require "rdmm/responses/list_floors_response"
|
22
|
+
require "rdmm/responses/list_genres_response"
|
9
23
|
require "rdmm/responses/list_items_response"
|
24
|
+
require "rdmm/responses/list_makers_response"
|
10
25
|
require "rdmm/responses/list_series_response"
|
11
26
|
require "rdmm/version"
|
data/lib/rdmm/client.rb
CHANGED
@@ -4,7 +4,12 @@ require "faraday_middleware"
|
|
4
4
|
module Rdmm
|
5
5
|
class Client
|
6
6
|
BASE_URL = "https://api.dmm.com"
|
7
|
+
PATH_TO_LIST_ACTRESSES = "/affiliate/v3/ActressSearch"
|
8
|
+
PATH_TO_LIST_AUTHORS = "/affiliate/v3/AuthorSearch"
|
9
|
+
PATH_TO_LIST_FLOORS = "/affiliate/v3/FloorList"
|
10
|
+
PATH_TO_LIST_GENRES = "/affiliate/v3/GenreSearch"
|
7
11
|
PATH_TO_LIST_ITEMS = "/affiliate/v3/ItemList"
|
12
|
+
PATH_TO_LIST_MAKERS = "/affiliate/v3/MakerSearch"
|
8
13
|
PATH_TO_LIST_SERIES = "/affiliate/v3/SeriesSearch"
|
9
14
|
|
10
15
|
# @param affiliate_id [String]
|
@@ -23,22 +28,81 @@ module Rdmm
|
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
31
|
+
# @param options [Hash]
|
32
|
+
# @return [Rdmm::Responses::ListActressesResponse]
|
33
|
+
def list_actresses(options = {})
|
34
|
+
list(
|
35
|
+
query_class: ::Rdmm::Queries::ListActressesQuery,
|
36
|
+
options: options,
|
37
|
+
path: PATH_TO_LIST_ACTRESSES,
|
38
|
+
response_class: ::Rdmm::Responses::ListActressesResponse,
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @param options [Hash]
|
43
|
+
# @return [Rdmm::Responses::ListAuthorsResponse]
|
44
|
+
def list_authors(options = {})
|
45
|
+
list(
|
46
|
+
query_class: ::Rdmm::Queries::ListAuthorsQuery,
|
47
|
+
options: options,
|
48
|
+
path: PATH_TO_LIST_AUTHORS,
|
49
|
+
response_class: ::Rdmm::Responses::ListAuthorsResponse,
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
# @param options [Hash]
|
54
|
+
# @return [Rdmm::Responses::ListFloorsResponse]
|
55
|
+
def list_floors(options = {})
|
56
|
+
list(
|
57
|
+
query_class: ::Rdmm::Queries::ListFloorsQuery,
|
58
|
+
options: options,
|
59
|
+
path: PATH_TO_LIST_FLOORS,
|
60
|
+
response_class: ::Rdmm::Responses::ListFloorsResponse,
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param options [Hash]
|
65
|
+
# @return [Rdmm::Responses::ListGenresResponse]
|
66
|
+
def list_genres(options = {})
|
67
|
+
list(
|
68
|
+
query_class: ::Rdmm::Queries::ListGenresQuery,
|
69
|
+
options: options,
|
70
|
+
path: PATH_TO_LIST_GENRES,
|
71
|
+
response_class: ::Rdmm::Responses::ListGenresResponse,
|
72
|
+
)
|
73
|
+
end
|
74
|
+
|
26
75
|
# @param options [Hash]
|
27
76
|
# @return [Rdmm::Responses::ListItemsResponse]
|
28
77
|
def list_items(options = {})
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
78
|
+
list(
|
79
|
+
query_class: ::Rdmm::Queries::ListItemsQuery,
|
80
|
+
options: options,
|
81
|
+
path: PATH_TO_LIST_ITEMS,
|
82
|
+
response_class: ::Rdmm::Responses::ListItemsResponse,
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
# @param options [Hash]
|
87
|
+
# @return [Rdmm::Responses::ListMakersResponse]
|
88
|
+
def list_makers(options = {})
|
89
|
+
list(
|
90
|
+
query_class: ::Rdmm::Queries::ListMakersQuery,
|
91
|
+
options: options,
|
92
|
+
path: PATH_TO_LIST_MAKERS,
|
93
|
+
response_class: ::Rdmm::Responses::ListMakersResponse,
|
94
|
+
)
|
33
95
|
end
|
34
96
|
|
35
97
|
# @param options [Hash]
|
36
98
|
# @return [Rdmm::Responses::ListSeriesResponse]
|
37
99
|
def list_series(options = {})
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
100
|
+
list(
|
101
|
+
query_class: ::Rdmm::Queries::ListSeriesQuery,
|
102
|
+
options: options,
|
103
|
+
path: PATH_TO_LIST_SERIES,
|
104
|
+
response_class: ::Rdmm::Responses::ListSeriesResponse,
|
105
|
+
)
|
42
106
|
end
|
43
107
|
|
44
108
|
private
|
@@ -51,12 +115,16 @@ module Rdmm
|
|
51
115
|
}
|
52
116
|
end
|
53
117
|
|
54
|
-
# @
|
118
|
+
# @param query_class [Class]
|
119
|
+
# @param options [Hash]
|
55
120
|
# @param path [String]
|
56
|
-
# @param
|
57
|
-
# @return [
|
58
|
-
def
|
59
|
-
|
121
|
+
# @param response_class [Class]
|
122
|
+
# @return [Rdmm::Responses::BaseResponse]
|
123
|
+
def list(query_class:, options:, path:, response_class:)
|
124
|
+
query_options = default_query_options.merge(options)
|
125
|
+
query = query_class.new(query_options)
|
126
|
+
faraday_response = connection.get(path, query.to_hash)
|
127
|
+
response_class.new(faraday_response)
|
60
128
|
end
|
61
129
|
end
|
62
130
|
end
|
@@ -22,8 +22,6 @@ module Rdmm
|
|
22
22
|
|
23
23
|
property :affiliate_id
|
24
24
|
property :api_id
|
25
|
-
property :hits
|
26
|
-
property :offset
|
27
25
|
|
28
26
|
# @param options [Hash]
|
29
27
|
def initialize(options = {})
|
@@ -40,16 +38,6 @@ module Rdmm
|
|
40
38
|
options[:api_id]
|
41
39
|
end
|
42
40
|
|
43
|
-
# @return [Integer, nil]
|
44
|
-
def hits
|
45
|
-
options[:hits]
|
46
|
-
end
|
47
|
-
|
48
|
-
# @return [Integer, nil]
|
49
|
-
def offset
|
50
|
-
options[:offset]
|
51
|
-
end
|
52
|
-
|
53
41
|
# @return [Hash]
|
54
42
|
def to_hash
|
55
43
|
self.class.property_names.each_with_object({}) do |property_name, result|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Queries
|
3
|
+
class ListActressesQuery < BaseQuery
|
4
|
+
property :actress_id
|
5
|
+
property :birthday
|
6
|
+
property :bust
|
7
|
+
property :height
|
8
|
+
property :hip
|
9
|
+
property :hits
|
10
|
+
property :initial
|
11
|
+
property :keyword
|
12
|
+
property :offset
|
13
|
+
property :sort
|
14
|
+
property :waist
|
15
|
+
|
16
|
+
# @return [Integer, nil]
|
17
|
+
def actress_id
|
18
|
+
options[:id]
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [String, nil]
|
22
|
+
def birthday
|
23
|
+
format_from_and_to(options[:birthday_from], options[:birthday_to])
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String, nil]
|
27
|
+
def bust
|
28
|
+
format_from_and_to(options[:bust_from], options[:bust_to])
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [String, nil]
|
32
|
+
def height
|
33
|
+
format_from_and_to(options[:height_from], options[:height_to])
|
34
|
+
end
|
35
|
+
|
36
|
+
# @return [String, nil]
|
37
|
+
def hip
|
38
|
+
format_from_and_to(options[:hip_from], options[:hip_from])
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Integer, nil]
|
42
|
+
def hits
|
43
|
+
options[:hits]
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [String, nil]
|
47
|
+
def initial
|
48
|
+
options[:initial]
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [String, nil]
|
52
|
+
def keyword
|
53
|
+
options[:keyword]
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Integer, nil]
|
57
|
+
def offset
|
58
|
+
options[:offset]
|
59
|
+
end
|
60
|
+
|
61
|
+
# @return [String, nil]
|
62
|
+
def sort
|
63
|
+
options[:sort]
|
64
|
+
end
|
65
|
+
|
66
|
+
# @return [String, nil]
|
67
|
+
def waist
|
68
|
+
format_from_and_to(options[:waist_from], options[:waist_from])
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
# @return [String, nil]
|
74
|
+
def format_from_and_to(from, to)
|
75
|
+
if from || to
|
76
|
+
[
|
77
|
+
from.respond_to?(:strftime) ? from.strftime("%Y%m%d") : from,
|
78
|
+
to.respond_to?(:strftime) ? to.strftime("%Y%m%d") : to,
|
79
|
+
].join("-")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Queries
|
3
|
+
class ListAuthorsQuery < BaseQuery
|
4
|
+
property :floor_id
|
5
|
+
property :hits
|
6
|
+
property :initial
|
7
|
+
property :offset
|
8
|
+
|
9
|
+
# @return [Integer, nil]
|
10
|
+
def floor_id
|
11
|
+
options[:floor_id]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Integer, nil]
|
15
|
+
def hits
|
16
|
+
options[:hits]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def initial
|
21
|
+
options[:initial]
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Integer, nil]
|
25
|
+
def offset
|
26
|
+
options[:offset]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Queries
|
3
|
+
class ListGenresQuery < BaseQuery
|
4
|
+
property :floor_id
|
5
|
+
property :hits
|
6
|
+
property :initial
|
7
|
+
property :offset
|
8
|
+
|
9
|
+
# @return [Integer, nil]
|
10
|
+
def floor_id
|
11
|
+
options[:floor_id]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Integer, nil]
|
15
|
+
def hits
|
16
|
+
options[:hits]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def initial
|
21
|
+
options[:initial]
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Integer, nil]
|
25
|
+
def offset
|
26
|
+
options[:offset]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -6,9 +6,11 @@ module Rdmm
|
|
6
6
|
property :cid
|
7
7
|
property :floor
|
8
8
|
property :gte_date
|
9
|
+
property :hits
|
9
10
|
property :keyword
|
10
11
|
property :lte_date
|
11
12
|
property :mono_stock
|
13
|
+
property :offset
|
12
14
|
property :service
|
13
15
|
property :site
|
14
16
|
property :sort
|
@@ -47,6 +49,11 @@ module Rdmm
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
52
|
+
# @return [Integer, nil]
|
53
|
+
def hits
|
54
|
+
options[:hits]
|
55
|
+
end
|
56
|
+
|
50
57
|
# @return [String, nil]
|
51
58
|
def keyword
|
52
59
|
options[:keyword]
|
@@ -69,6 +76,11 @@ module Rdmm
|
|
69
76
|
options[:mono_stock]
|
70
77
|
end
|
71
78
|
|
79
|
+
# @return [Integer, nil]
|
80
|
+
def offset
|
81
|
+
options[:offset]
|
82
|
+
end
|
83
|
+
|
72
84
|
# @note service code
|
73
85
|
# @return [String, nil]
|
74
86
|
def service
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Queries
|
3
|
+
class ListMakersQuery < BaseQuery
|
4
|
+
property :floor_id
|
5
|
+
property :hits
|
6
|
+
property :initial
|
7
|
+
property :offset
|
8
|
+
|
9
|
+
# @return [Integer, nil]
|
10
|
+
def floor_id
|
11
|
+
options[:floor_id]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Integer, nil]
|
15
|
+
def hits
|
16
|
+
options[:hits]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def initial
|
21
|
+
options[:initial]
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Integer, nil]
|
25
|
+
def offset
|
26
|
+
options[:offset]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -2,17 +2,29 @@ module Rdmm
|
|
2
2
|
module Queries
|
3
3
|
class ListSeriesQuery < BaseQuery
|
4
4
|
property :floor_id
|
5
|
+
property :hits
|
5
6
|
property :initial
|
7
|
+
property :offset
|
6
8
|
|
7
9
|
# @return [Integer, nil]
|
8
10
|
def floor_id
|
9
11
|
options[:floor_id]
|
10
12
|
end
|
11
13
|
|
14
|
+
# @return [Integer, nil]
|
15
|
+
def hits
|
16
|
+
options[:hits]
|
17
|
+
end
|
18
|
+
|
12
19
|
# @return [String, nil]
|
13
20
|
def initial
|
14
21
|
options[:initial]
|
15
22
|
end
|
23
|
+
|
24
|
+
# @return [Integer, nil]
|
25
|
+
def offset
|
26
|
+
options[:offset]
|
27
|
+
end
|
16
28
|
end
|
17
29
|
end
|
18
30
|
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require "date"
|
2
|
+
|
3
|
+
module Rdmm
|
4
|
+
module Resources
|
5
|
+
class ActressResource < BaseResource
|
6
|
+
# @return [Date, nil]
|
7
|
+
def birthday
|
8
|
+
if source["birthday"]
|
9
|
+
::Date.parse(source["birthday"])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# @return [String, nil]
|
14
|
+
def blood_type
|
15
|
+
source["blood_type"]
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Integer, nil]
|
19
|
+
def bust
|
20
|
+
source["bust"]
|
21
|
+
end
|
22
|
+
|
23
|
+
# @return [String, nil]
|
24
|
+
def cup
|
25
|
+
source["cup"]
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Integer, nil]
|
29
|
+
def height
|
30
|
+
source["height"]
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Array<String>]
|
34
|
+
def hobbies
|
35
|
+
if source["hobby"]
|
36
|
+
source["hobby"].split("、")
|
37
|
+
else
|
38
|
+
[]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# @return [Integer, nil]
|
43
|
+
def id
|
44
|
+
source["id"]
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [String, nil]
|
48
|
+
def image_url_large
|
49
|
+
if source["imageURL"]
|
50
|
+
source["imageURL"]["large"]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# @return [String, nil]
|
55
|
+
def image_url_small
|
56
|
+
if source["imageURL"]
|
57
|
+
source["imageURL"]["small"]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# @return [String, nil]
|
62
|
+
def list_url_digital
|
63
|
+
source["listURL"]["digital"]
|
64
|
+
end
|
65
|
+
|
66
|
+
# @return [String, nil]
|
67
|
+
def list_url_mono
|
68
|
+
source["listURL"]["mono"]
|
69
|
+
end
|
70
|
+
|
71
|
+
# @return [String, nil]
|
72
|
+
def list_url_monthly
|
73
|
+
source["listURL"]["monthly"]
|
74
|
+
end
|
75
|
+
|
76
|
+
# @return [String, nil]
|
77
|
+
def list_url_ppm
|
78
|
+
source["listURL"]["ppm"]
|
79
|
+
end
|
80
|
+
|
81
|
+
# @return [String, nil]
|
82
|
+
def list_url_rental
|
83
|
+
source["listURL"]["rental"]
|
84
|
+
end
|
85
|
+
|
86
|
+
# @return [String, nil]
|
87
|
+
def name
|
88
|
+
source["name"]
|
89
|
+
end
|
90
|
+
|
91
|
+
# @return [String, nil]
|
92
|
+
def prefectures
|
93
|
+
unless source["prefectures"].nil? || source["prefectures"].empty?
|
94
|
+
source["prefectures"]
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
# @return [String, nil]
|
99
|
+
def ruby
|
100
|
+
source["ruby"]
|
101
|
+
end
|
102
|
+
|
103
|
+
# @return [Integer, nil]
|
104
|
+
def waist
|
105
|
+
source["waist"]
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Resources
|
3
|
+
class AuthorResource < BaseResource
|
4
|
+
# @return [String, nil]
|
5
|
+
def another_name
|
6
|
+
source["another_name"]
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [Integer, nil]
|
10
|
+
def id
|
11
|
+
source["author_id"]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
def list_url
|
16
|
+
source["list_url"]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def name
|
21
|
+
source["name"]
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [String, nil]
|
25
|
+
def ruby
|
26
|
+
source["ruby"]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Resources
|
3
|
+
class FloorResource < BaseResource
|
4
|
+
# @return [String, nil]
|
5
|
+
def code
|
6
|
+
source["code"]
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [Integer, nil]
|
10
|
+
def id
|
11
|
+
source["id"]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
def name
|
16
|
+
source["name"]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def service_code
|
21
|
+
source["service_code"]
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [String, nil]
|
25
|
+
def service_name
|
26
|
+
source["service_name"]
|
27
|
+
end
|
28
|
+
|
29
|
+
# @return [String, nil]
|
30
|
+
def site_code
|
31
|
+
source["site_code"]
|
32
|
+
end
|
33
|
+
|
34
|
+
# @return [String, nil]
|
35
|
+
def site_name
|
36
|
+
source["site_name"]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Resources
|
3
|
+
class GenreResource < BaseResource
|
4
|
+
# @return [Integer, nil]
|
5
|
+
def id
|
6
|
+
source["genre_id"]
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [String, nil]
|
10
|
+
def list_url
|
11
|
+
source["list_url"]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
def name
|
16
|
+
source["name"]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def ruby
|
21
|
+
source["ruby"]
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Resources
|
3
|
+
class MakerResource < BaseResource
|
4
|
+
# @return [Integer, nil]
|
5
|
+
def id
|
6
|
+
source["maker_id"]
|
7
|
+
end
|
8
|
+
|
9
|
+
# @return [String, nil]
|
10
|
+
def list_url
|
11
|
+
source["list_url"]
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [String, nil]
|
15
|
+
def name
|
16
|
+
source["name"]
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String, nil]
|
20
|
+
def ruby
|
21
|
+
source["ruby"]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
module Rdmm
|
2
2
|
module Resources
|
3
3
|
class SeriesResource < BaseResource
|
4
|
+
# @return [Integer]
|
5
|
+
def id
|
6
|
+
source["series_id"]
|
7
|
+
end
|
8
|
+
|
4
9
|
# @return [String]
|
5
10
|
def list_url
|
6
11
|
source["list_url"]
|
@@ -15,11 +20,6 @@ module Rdmm
|
|
15
20
|
def ruby
|
16
21
|
source["ruby"]
|
17
22
|
end
|
18
|
-
|
19
|
-
# @return [Integer]
|
20
|
-
def series_id
|
21
|
-
source["series_id"]
|
22
|
-
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Rdmm
|
2
|
+
module Responses
|
3
|
+
class ListFloorsResponse < BaseResponse
|
4
|
+
# @note Override
|
5
|
+
def resources
|
6
|
+
body["result"]["site"].flat_map do |site_source|
|
7
|
+
site_source["service"].flat_map do |service_source|
|
8
|
+
service_source["floor"].map do |source|
|
9
|
+
::Rdmm::Resources::FloorResource.new(
|
10
|
+
source.merge(
|
11
|
+
"site_code" => site_source["code"],
|
12
|
+
"site_name" => site_source["name"],
|
13
|
+
"service_code" => service_source["code"],
|
14
|
+
"service_name" => service_source["name"],
|
15
|
+
),
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/rdmm/version.rb
CHANGED
data/rdmm.gemspec
CHANGED
@@ -7,14 +7,15 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.version = Rdmm::VERSION
|
8
8
|
spec.authors = ["Ryo Nakamura"]
|
9
9
|
spec.email = ["r7kamura@gmail.com"]
|
10
|
-
spec.summary = "An API Client library for DMM written in Ruby."
|
10
|
+
spec.summary = "An API Client library for DMM Web Service written in Ruby."
|
11
11
|
spec.homepage = "https://github.com/r7kamura/rdmm"
|
12
12
|
spec.license = "MIT"
|
13
13
|
|
14
|
-
spec.files
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
15
15
|
f.match(%r{^(test|spec|features)/})
|
16
16
|
end
|
17
17
|
spec.require_paths = ["lib"]
|
18
|
+
spec.required_ruby_version = ">= 2.2.2"
|
18
19
|
|
19
20
|
spec.add_dependency "faraday"
|
20
21
|
spec.add_dependency "faraday_middleware"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdmm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -111,13 +111,28 @@ files:
|
|
111
111
|
- lib/rdmm.rb
|
112
112
|
- lib/rdmm/client.rb
|
113
113
|
- lib/rdmm/queries/base_query.rb
|
114
|
+
- lib/rdmm/queries/list_actresses_query.rb
|
115
|
+
- lib/rdmm/queries/list_authors_query.rb
|
116
|
+
- lib/rdmm/queries/list_floors_query.rb
|
117
|
+
- lib/rdmm/queries/list_genres_query.rb
|
114
118
|
- lib/rdmm/queries/list_items_query.rb
|
119
|
+
- lib/rdmm/queries/list_makers_query.rb
|
115
120
|
- lib/rdmm/queries/list_series_query.rb
|
121
|
+
- lib/rdmm/resources/actress_resource.rb
|
122
|
+
- lib/rdmm/resources/author_resource.rb
|
116
123
|
- lib/rdmm/resources/base_resource.rb
|
124
|
+
- lib/rdmm/resources/floor_resource.rb
|
125
|
+
- lib/rdmm/resources/genre_resource.rb
|
117
126
|
- lib/rdmm/resources/item_resource.rb
|
127
|
+
- lib/rdmm/resources/maker_resource.rb
|
118
128
|
- lib/rdmm/resources/series_resource.rb
|
119
129
|
- lib/rdmm/responses/base_response.rb
|
130
|
+
- lib/rdmm/responses/list_actresses_response.rb
|
131
|
+
- lib/rdmm/responses/list_authors_response.rb
|
132
|
+
- lib/rdmm/responses/list_floors_response.rb
|
133
|
+
- lib/rdmm/responses/list_genres_response.rb
|
120
134
|
- lib/rdmm/responses/list_items_response.rb
|
135
|
+
- lib/rdmm/responses/list_makers_response.rb
|
121
136
|
- lib/rdmm/responses/list_series_response.rb
|
122
137
|
- lib/rdmm/version.rb
|
123
138
|
- rdmm.gemspec
|
@@ -133,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
148
|
requirements:
|
134
149
|
- - ">="
|
135
150
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
151
|
+
version: 2.2.2
|
137
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
153
|
requirements:
|
139
154
|
- - ">="
|
@@ -144,5 +159,5 @@ rubyforge_project:
|
|
144
159
|
rubygems_version: 2.5.2
|
145
160
|
signing_key:
|
146
161
|
specification_version: 4
|
147
|
-
summary: An API Client library for DMM written in Ruby.
|
162
|
+
summary: An API Client library for DMM Web Service written in Ruby.
|
148
163
|
test_files: []
|