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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54076c9244079f54ca1a6e9634e3cd88899cc76e83e42f1736684114cee27179
4
- data.tar.gz: 2520c785025ab48ff9ff83845564d8b59b3a80ea859ed48ac567303f008410d4
3
+ metadata.gz: 2d951237e3738aac64b419374e01b8774ed218b5adfe154839f21c638b9e0e3a
4
+ data.tar.gz: 50d112ccefd325c04299ea4fc84b1e83c87e49725963ad017a25eb5efdb6c0f6
5
5
  SHA512:
6
- metadata.gz: de666471befe34a0bba7f0d0f5689f9d5266d723070575128353f6771967de9f514a81d0a54491779f9cebff1c561a4a7a946066d6e36ed3048604dde9032ff2
7
- data.tar.gz: d6cfd45c62879f8467d85a2541be1c7e42e98bfeaf90645f16d7a9ab0d647d72f508e1b171bb851e4114a2583447ca2ca19e657521ecbe5b17f26cdfea9ca7c7
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.1.1)
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
@@ -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
- QIITA_URI = 'https://qiita.com/'
14
- USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QiitaTrend
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
data/lib/qiita_trend.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'qiita_trend/version'
4
4
  require 'qiita_trend/trend'
5
+ require 'qiita_trend/page'
5
6
 
6
7
  module QiitaTrend
7
8
  end
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.1.1
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-24 00:00:00.000000000 Z
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