qiita_trend 0.3.0 → 0.3.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2dd970e1dd4d53b1f9f1f6fadc506f1ba55d256f4702c7a288099aacbb78ee59
4
- data.tar.gz: b44e084aeaf9ca6e8ab0f4d0c46a9822f78a46b866d535c5786337d8cfd40527
3
+ metadata.gz: 4e74aadb2bce6f5771bebadc4bf48a9edb09c621e33ff95c239da3d458d87264
4
+ data.tar.gz: 6fc7f0c9c2a9543025ddd74d25ee6c205fdf256adf83fd808a7d7923dc4a21ce
5
5
  SHA512:
6
- metadata.gz: b068f52643d97848e004045ba9584765816e6a4dc426ce5e65efbb0106d32853ec9798992a0ee839650466c4b2a796e438ef9174320e822fd9d8adc2e7c400a6
7
- data.tar.gz: c975ac069b39ce24004b7b963c63d55166f2d06a056005a4f05bd4b820ad33b2c960a664f47b07df54557439f2d4f0c0c143d201aee37ad4028162f425df7246
6
+ metadata.gz: 20fd415c7ae5685333264565899c36845449a807eb2ac900acae3849ce81b2770a59d5b1d6efe141677b9f8b40bc6d6c69c74ca9b254f3095f1e90af5d3c4e50
7
+ data.tar.gz: f3412f29aac75eebf1b5a799571af7bb023a33f4ec71aa726993de44cdfd37e6784724efc0666e4ed1213f999c63479560cc4944ebbb15bc141bb0c04dd8ffd8
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_trend (0.3.0)
4
+ qiita_trend (0.3.5)
5
5
  mechanize
6
6
  nokogiri (~> 1.9)
7
7
 
data/README.md CHANGED
@@ -9,6 +9,7 @@ Qiitaのトレンドを10秒で取得することができます
9
9
  ## 概要
10
10
 
11
11
  - [Qiita](https://qiita.com/)のTOPページをスクレイピングしDaily、Weekly、Monthlyのトレンドを取得します
12
+ - [Qiita](https://qiita.com/)のAPIにトレンドを取得する方法がないため
12
13
  - トレンドはDaily、Weekly、Monthlyそれぞれを日付と更新時間(5時と17時)の組み合わせごとにキャッシュを行います
13
14
  - Weekly、Monthlyに関してはQiitaにログインしないと取得できないためユーザー名とパスワード設定する必要があります(Dailyに関しては何も設定しなくても取得できます)
14
15
  - 過去のトレンドを取得することができます(**あくまでもキャッシュファイルから復元するためキャッシュファイルの無い過去のトレンドは取得することができません**)
@@ -249,3 +250,7 @@ QiitaTrend.configure do |config|
249
250
  config.cache_directory = Dir.home + '/hoge/'
250
251
  end
251
252
  ```
253
+
254
+ ## 注意
255
+
256
+ このgemは勉強用で作成したものでソースにはアンチパターンなコメント(処理を説明するようなコメントなど)が書かれています。そこはご容赦ください
@@ -3,6 +3,7 @@
3
3
  require 'nokogiri'
4
4
  require 'open-uri'
5
5
  require 'json'
6
+ require 'uri'
6
7
 
7
8
  module QiitaTrend
8
9
  # Qiitaのトレンドの機能を提供する
@@ -32,7 +33,7 @@ module QiitaTrend
32
33
  result = {}
33
34
  result['title'] = trend['node']['title']
34
35
  result['user_name'] = trend['node']['author']['urlName']
35
- result['user_image'] = trend['node']['author']['profileImageUrl']
36
+ result['user_image'] = user_image(trend['node']['author']['profileImageUrl'])
36
37
  result['user_page'] = "#{Page::QIITA_URI}#{trend['node']['author']['urlName']}"
37
38
  result['article'] = "#{Page::QIITA_URI}#{trend['node']['author']['urlName']}/items/#{trend['node']['uuid']}"
38
39
  result['created_at'] = trend['node']['createdAt']
@@ -50,5 +51,22 @@ module QiitaTrend
50
51
  trend['is_new_arrival'] == true
51
52
  end
52
53
  end
54
+
55
+ private
56
+
57
+ # ユーザーの画像のURLを取得する
58
+ # URLデコードしimgix(画像ファイルの配信向けに特化したCDNサービス)のURLを排除する
59
+ # クエリーパラメータも排除する
60
+ #
61
+ # @return [String] ユーザーの画像のURL
62
+ def user_image(url)
63
+ # URLデコード
64
+ unescape_url = CGI.unescape(url)
65
+ # imgixのURLからユーザーの画像のURLへ変換する
66
+ exclusion_imgix = unescape_url.gsub!('https://qiita-user-profile-images.imgix.net/', '')
67
+ # クエリパラーメーを除いた形で返す
68
+ parse_url = URI.parse(exclusion_imgix)
69
+ "#{parse_url.scheme}://#{parse_url.host}#{parse_url.path}"
70
+ end
53
71
  end
54
72
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QiitaTrend
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiita_trend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - dodonki1223
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-26 00:00:00.000000000 Z
11
+ date: 2019-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize