dmm-crawler 0.0.1 → 0.0.2
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/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/README.md +50 -0
- data/doc/ja/README.md +48 -0
- data/lib/dmm-crawler/ranking.rb +4 -3
- data/lib/dmm-crawler/version.rb +1 -1
- data/spec/dmm-crawler/ranking_spec.rb +11 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2a971f680dc60f0a06721a2a0c6b29f1f06aced
|
4
|
+
data.tar.gz: c36967cc3cc6cc8c7a72283c28905e6db4b18d20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 853c15408188b05ee7be37d1bc57e6f478c893253f3c0979c09f7c9adfd589a611253d280cdce49883ba0d3625204db6292906fe4fc7b111fe372e15e5811feb
|
7
|
+
data.tar.gz: 2eed407e8d1de2ec579f59ebe9ef8e93dc99a5b846e5ca60f904e845eaf7751b9ac48068ffef2cc6d1bb2f8591afd172511ccc679c1da35bc7227503d5928df5
|
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
data/README.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
:us: [:jp:](./doc/ja/README.md) [](https://travis-ci.org/sachin21/dmm-crawler)  [](https://travis-ci.org/sachin21/dmm-crawler) [](https://codeclimate.com/github/sachin21/dmm-crawler) [](https://rubygems.org/gems/dmm-crawler)
|
2
|
+
|
3
|
+
# DMM Crawler
|
4
|
+
|
5
|
+
## What is DMM Crawler
|
6
|
+
|
7
|
+
Show DMM and DMM.R18's crawled data. Now, All rankings for doujin is crawlable.
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
On your gemfile.
|
12
|
+
|
13
|
+
```
|
14
|
+
gem 'dmm-crawler'
|
15
|
+
```
|
16
|
+
|
17
|
+
## Usage
|
18
|
+
From the bot in invited Slack's room.
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
require 'dmm-crawler'
|
22
|
+
|
23
|
+
include DMMCrawler
|
24
|
+
|
25
|
+
args = {
|
26
|
+
term: '24',
|
27
|
+
submedia: 'cg'
|
28
|
+
}
|
29
|
+
|
30
|
+
Ranking.new(args).books
|
31
|
+
|
32
|
+
# =>
|
33
|
+
# {
|
34
|
+
# title: "title",
|
35
|
+
# url: 'URL for title',
|
36
|
+
# image_url: 'Link to title's main image',
|
37
|
+
# tags: ['tag1', 'tag2']
|
38
|
+
# }
|
39
|
+
```
|
40
|
+
|
41
|
+
For example, Above command will show the doujin cg 24's ranking.
|
42
|
+
|
43
|
+
|
44
|
+
## Contributing
|
45
|
+
|
46
|
+
1. Fork it
|
47
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
48
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
49
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
50
|
+
5. Create new Pull Request
|
data/doc/ja/README.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
[:us:](../../README.md) :jp: [](https://travis-ci.org/sachin21/dmm-crawler)  [](https://travis-ci.org/sachin21/dmm-crawler) [](https://codeclimate.com/github/sachin21/dmm-crawler) [](https://rubygems.org/gems/dmm-crawler)
|
2
|
+
|
3
|
+
# DMM Crawler
|
4
|
+
|
5
|
+
## DMM Crawlerとは
|
6
|
+
DMM.R18のクロールしたデータを取得するgemです。現在、**同人**のランキングにのみ対応しております。
|
7
|
+
|
8
|
+
## インストール
|
9
|
+
|
10
|
+
Gemfileに以下を追記してください。
|
11
|
+
|
12
|
+
```
|
13
|
+
gem 'dmm-crawler'
|
14
|
+
```
|
15
|
+
|
16
|
+
## 使い方
|
17
|
+
データを使いたい`.rb`ファイルで以下を実行したらクロールしたデータが取得出来ます。
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
require 'dmm-crawler'
|
21
|
+
|
22
|
+
include DMMCrawler
|
23
|
+
|
24
|
+
args = {
|
25
|
+
term: '24',
|
26
|
+
submedia: 'cg'
|
27
|
+
}
|
28
|
+
|
29
|
+
Ranking.new(args).books
|
30
|
+
|
31
|
+
# =>
|
32
|
+
# {
|
33
|
+
# title: "タイトル",
|
34
|
+
# url: '作品のURL',
|
35
|
+
# image_url: '作品のメイン画像へのURL',
|
36
|
+
# tags: ['タグ1', 'タグ2']
|
37
|
+
# }
|
38
|
+
```
|
39
|
+
|
40
|
+
この例ではCG作品の24時間ランキングのデータを取得しています。
|
41
|
+
|
42
|
+
## コントリビューション
|
43
|
+
|
44
|
+
1. フォークする
|
45
|
+
2. 新しくブランチを切る (`git checkout -b my-new-feature`)
|
46
|
+
3. 変更をコミットする (`git commit -am 'Add some feature'`)
|
47
|
+
4. 変更をプッシュする (`git push origin my-new-feature`)
|
48
|
+
5. プルリクエストを投げる :+1:
|
data/lib/dmm-crawler/ranking.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module DMMCrawler
|
2
2
|
class Ranking
|
3
3
|
BASE_URL = 'http://www.dmm.co.jp'.freeze
|
4
|
-
COLORS = %w(7acc28 9dcc28 cc2828 cc6e28 28a9cc 3428cc cc28b4 c0cc28 2886cc 28cca9).map { |hex| "##{hex}" }.freeze
|
5
4
|
|
6
5
|
def initialize(arguments)
|
7
6
|
@term = discriminate_term(arguments[:term])
|
@@ -15,10 +14,12 @@ module DMMCrawler
|
|
15
14
|
[
|
16
15
|
element.search('.rank-name').first.text.strip,
|
17
16
|
element.search('img').last.attributes['src'].value,
|
18
|
-
"#{BASE_URL}#{element.search('.rank-name').first.search('a').first.attributes.first[1].value}"
|
17
|
+
"#{BASE_URL}#{element.search('.rank-name').first.search('a').first.attributes.first[1].value}",
|
18
|
+
element.search('.rank-labelListItem').map { |e| e.search('a').text.strip }
|
19
19
|
]
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
|
+
books.map.with_index(1) { |(title, image, url, tags), rank| { title: "#{rank}位: #{title}", url: url, image_url: image, tags: tags } }
|
22
23
|
end
|
23
24
|
|
24
25
|
private
|
data/lib/dmm-crawler/version.rb
CHANGED
@@ -5,13 +5,23 @@ describe DMMCrawler::Ranking do
|
|
5
5
|
let(:arguments) { { submedia: submedia, term: term } }
|
6
6
|
|
7
7
|
describe '#books' do
|
8
|
+
after { sleep 2 }
|
9
|
+
|
10
|
+
context 'with length' do
|
11
|
+
subject { attachments.length }
|
12
|
+
|
13
|
+
let(:term) { '24' }
|
14
|
+
|
15
|
+
it { is_expected.to be 20 }
|
16
|
+
end
|
17
|
+
|
8
18
|
context 'with 24 argument' do
|
9
19
|
subject { attachments }
|
10
20
|
|
11
21
|
let(:term) { '24' }
|
12
22
|
|
13
23
|
it { is_expected.not_to be_empty }
|
14
|
-
it { is_expected.to all(include(:title, :
|
24
|
+
it { is_expected.to all(include(:title, :url, :image_url, :tags)) }
|
15
25
|
end
|
16
26
|
|
17
27
|
context 'with not registered argument' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dmm-crawler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Satoshi Ohmori
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -105,11 +105,14 @@ files:
|
|
105
105
|
- ".rspec"
|
106
106
|
- ".rubocop.yml"
|
107
107
|
- ".travis.yml"
|
108
|
+
- CHANGELOG.md
|
108
109
|
- Gemfile
|
109
110
|
- Gemfile.lock
|
110
111
|
- LICENSE.txt
|
112
|
+
- README.md
|
111
113
|
- Rakefile
|
112
114
|
- dmm-crawler.gemspec
|
115
|
+
- doc/ja/README.md
|
113
116
|
- lib/dmm-crawler.rb
|
114
117
|
- lib/dmm-crawler/agent.rb
|
115
118
|
- lib/dmm-crawler/ranking.rb
|