qiita_trend 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +27 -1
- data/lib/qiita_trend/page.rb +19 -0
- data/lib/qiita_trend/trend.rb +4 -11
- data/lib/qiita_trend/version.rb +1 -1
- data/lib/qiita_trend.rb +1 -0
- data/qiita_trend.gemspec +3 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d951237e3738aac64b419374e01b8774ed218b5adfe154839f21c638b9e0e3a
|
4
|
+
data.tar.gz: 50d112ccefd325c04299ea4fc84b1e83c87e49725963ad017a25eb5efdb6c0f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89c8881053b2585a63110b5fa8f4fea5b67fcdfb1846284faecb5323de093eb5c424751b28254e451e13c4049f45dd5764b412baa356c7958d19f615a4c88e69
|
7
|
+
data.tar.gz: 3b582e329b482c824dd6056635aece16e6197240321f0a6626a60c4d34212ffdd0eefbb8af6404ed61bfc264866e77510d13c5633dd95c37d666c626d1f260f0
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
qiita_trend (0.
|
4
|
+
qiita_trend (0.2.0)
|
5
|
+
mechanize
|
5
6
|
nokogiri (~> 1.9)
|
6
7
|
|
7
8
|
GEM
|
@@ -10,14 +11,35 @@ GEM
|
|
10
11
|
addressable (2.6.0)
|
11
12
|
public_suffix (>= 2.0.2, < 4.0)
|
12
13
|
ast (2.4.0)
|
14
|
+
connection_pool (2.2.2)
|
13
15
|
crack (0.4.3)
|
14
16
|
safe_yaml (~> 1.0.0)
|
15
17
|
diff-lcs (1.3)
|
18
|
+
domain_name (0.5.20190701)
|
19
|
+
unf (>= 0.0.5, < 1.0.0)
|
16
20
|
hashdiff (1.0.0)
|
21
|
+
http-cookie (1.0.3)
|
22
|
+
domain_name (~> 0.5)
|
17
23
|
jaro_winkler (1.5.3)
|
24
|
+
mechanize (2.7.6)
|
25
|
+
domain_name (~> 0.5, >= 0.5.1)
|
26
|
+
http-cookie (~> 1.0)
|
27
|
+
mime-types (>= 1.17.2)
|
28
|
+
net-http-digest_auth (~> 1.1, >= 1.1.1)
|
29
|
+
net-http-persistent (>= 2.5.2)
|
30
|
+
nokogiri (~> 1.6)
|
31
|
+
ntlm-http (~> 0.1, >= 0.1.1)
|
32
|
+
webrobots (>= 0.0.9, < 0.2)
|
33
|
+
mime-types (3.2.2)
|
34
|
+
mime-types-data (~> 3.2015)
|
35
|
+
mime-types-data (3.2019.0331)
|
18
36
|
mini_portile2 (2.4.0)
|
37
|
+
net-http-digest_auth (1.4.1)
|
38
|
+
net-http-persistent (3.0.1)
|
39
|
+
connection_pool (~> 2.2)
|
19
40
|
nokogiri (1.10.3)
|
20
41
|
mini_portile2 (~> 2.4.0)
|
42
|
+
ntlm-http (0.1.1)
|
21
43
|
parallel (1.17.0)
|
22
44
|
parser (2.6.3.0)
|
23
45
|
ast (~> 2.4.0)
|
@@ -50,12 +72,16 @@ GEM
|
|
50
72
|
rubocop (>= 0.60.0)
|
51
73
|
ruby-progressbar (1.10.1)
|
52
74
|
safe_yaml (1.0.5)
|
75
|
+
unf (0.1.4)
|
76
|
+
unf_ext
|
77
|
+
unf_ext (0.0.7.6)
|
53
78
|
unicode-display_width (1.6.0)
|
54
79
|
vcr (5.0.0)
|
55
80
|
webmock (3.6.0)
|
56
81
|
addressable (>= 2.3.6)
|
57
82
|
crack (>= 0.3.2)
|
58
83
|
hashdiff (>= 0.4.0, < 2.0.0)
|
84
|
+
webrobots (0.1.2)
|
59
85
|
|
60
86
|
PLATFORMS
|
61
87
|
ruby
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'mechanize'
|
4
|
+
|
5
|
+
module QiitaTrend
|
6
|
+
class Page
|
7
|
+
attr_reader :page, :html
|
8
|
+
|
9
|
+
QIITA_URI = 'https://qiita.com/'
|
10
|
+
|
11
|
+
def initialize(ua)
|
12
|
+
agent = Mechanize.new
|
13
|
+
agent.user_agent_alias = ua
|
14
|
+
|
15
|
+
@page = agent.get QIITA_URI
|
16
|
+
@html = @page.body
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/qiita_trend/trend.rb
CHANGED
@@ -5,19 +5,12 @@ require 'open-uri'
|
|
5
5
|
require 'json'
|
6
6
|
|
7
7
|
module QiitaTrend
|
8
|
-
# Qiitaトレンドクラス
|
9
|
-
# Qiitaのトレンド機能を提供する
|
10
8
|
class Trend
|
11
9
|
attr_reader :data
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
html = URI.parse(QIITA_URI)
|
18
|
-
html = html.read('User-Agent' => USER_AGENT)
|
19
|
-
char = html.charset
|
20
|
-
parsed_html = Nokogiri::HTML.parse(html, nil, char)
|
11
|
+
def initialize(ua = 'Mac Safari')
|
12
|
+
page = QiitaTrend::Page.new(ua)
|
13
|
+
parsed_html = Nokogiri::HTML.parse(page.html)
|
21
14
|
|
22
15
|
trends_data = JSON.parse(parsed_html.xpath('//div[@data-hyperapp-app="Trend"]')[0]['data-hyperapp-props'])
|
23
16
|
@data = trends_data['trend']['edges']
|
@@ -31,7 +24,7 @@ module QiitaTrend
|
|
31
24
|
result['user_image'] = trend['node']['author']['profileImageUrl']
|
32
25
|
result['likes_count'] = trend['node']['likesCount']
|
33
26
|
result['is_new_arrival'] = trend['isNewArrival']
|
34
|
-
result['article'] = "#{QIITA_URI}#{trend['node']['author']['urlName']}/items/#{trend['node']['uuid']}"
|
27
|
+
result['article'] = "#{Page::QIITA_URI}#{trend['node']['author']['urlName']}/items/#{trend['node']['uuid']}"
|
35
28
|
value << result
|
36
29
|
end
|
37
30
|
end
|
data/lib/qiita_trend/version.rb
CHANGED
data/lib/qiita_trend.rb
CHANGED
data/qiita_trend.gemspec
CHANGED
@@ -37,7 +37,10 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
38
38
|
spec.require_paths = ['lib']
|
39
39
|
|
40
|
+
# qiita_trendに必要な依存gem設定(ここは最小限にすること)
|
41
|
+
spec.add_dependency 'mechanize'
|
40
42
|
spec.add_dependency 'nokogiri', '~> 1.9'
|
43
|
+
# 開発中のみ必要なgem設定
|
41
44
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
42
45
|
spec.add_development_dependency 'rake', '~> 10.0'
|
43
46
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qiita_trend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dodonki1223
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: mechanize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: nokogiri
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,6 +170,7 @@ files:
|
|
156
170
|
- bin/console
|
157
171
|
- bin/setup
|
158
172
|
- lib/qiita_trend.rb
|
173
|
+
- lib/qiita_trend/page.rb
|
159
174
|
- lib/qiita_trend/trend.rb
|
160
175
|
- lib/qiita_trend/version.rb
|
161
176
|
- qiita_trend.gemspec
|