qiita_trend 0.2.3 → 0.2.4

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: 0fe74834599fc12fe1030b69a3f6d343a4fec5e75d8ec77901c1e50682a1d947
4
- data.tar.gz: fbb07519c512eb345bc5fe8bf1b6917516ebc872a8650b85dec9bb6884d936d6
3
+ metadata.gz: 67f621ef51f4952e930e558fc7a001a39dd14544609df431308315cdfd803d9b
4
+ data.tar.gz: 1a386d98d6c15d9dda039c3a560ae19c0f181a7085c1cfb60159849bb7ecde31
5
5
  SHA512:
6
- metadata.gz: eb319895cfdeaeb3c07bdea395aa732f5c521bb20abc191ff1b2b63eecccb557a3248f2d599ccc98afd3fce5ba8755b10656a1975eda7bdab0e457fae1329967
7
- data.tar.gz: 7a4f43fe1da4a82b8ac3cdfe504baf9f91ff6ca8fce056c03278716ec2d43f672d9e19f111f51139595ad7d8e0fabadb3f4f4118a4a9642197f234a316871949
6
+ metadata.gz: c7f38145d52040ca27b5f9e1d33c415198485dee42699b097ca79995eb8f53f293c7a2cb98ea4163120d61125465e1cf1bbf190efadba3d2c48c8bef76a895ac
7
+ data.tar.gz: 968142b1d157328b68d3401fbfb785c4f830cb985f420944bb33a3628ca2787c9b8a49114e3032d4035928f353830a77718505240db45012dafbf4b6428196fb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_trend (0.2.3)
4
+ qiita_trend (0.2.4)
5
5
  mechanize
6
6
  nokogiri (~> 1.9)
7
7
 
data/README.md CHANGED
@@ -3,11 +3,17 @@
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/qiita_trend.svg)](https://badge.fury.io/rb/qiita_trend) [![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/dodonki1223/qiita_trend/blob/master/LICENSE.txt) [![CircleCI](https://circleci.com/gh/dodonki1223/qiita_trend/tree/master.svg?style=svg)](https://circleci.com/gh/dodonki1223/qiita_trend/tree/master)
5
5
 
6
- QiitaのDailyのトレンドを取得することができます(**Weekly、Monthlyは対応していません**)
6
+ Qiitaのトレンドを10秒で取得することができます
7
+
8
+ ![qiita_trend_sample](qiita_trend.gif)
7
9
 
8
10
  ## 概要
9
11
 
10
- [Qiita](https://qiita.com/)のTOPページをスクレイピングしDailyのトレンドを取得します
12
+ - [Qiita](https://qiita.com/)のTOPページをスクレイピングしDaily、Weekly、Monthlyのトレンドを取得します
13
+ - トレンドはDaily、Weekly、Monthlyそれぞれを日付と更新時間(5時と17時)の組み合わせごとにキャッシュを行います
14
+ - Weekly、Monthlyに関してはQiitaにログインしないと取得できないためユーザー名とパスワード設定する必要があります(Dailyに関しては何も設定しなくても取得できます)
15
+ - 過去のトレンドを取得することができます(**あくまでもキャッシュファイルから復元するためキャッシュファイルの無い過去のトレンドは取得することができません**)
16
+ - いいね数は性質上取得した時の時間に依存します。どうしても現在時刻のいいね数が欲しい場合はキャシュファイルを手動で削除してもう一度実行してください
11
17
 
12
18
  ## インストール
13
19
 
@@ -27,35 +33,170 @@ Or install it yourself as:
27
33
 
28
34
  ## 使用方法
29
35
 
30
- サクッと使ってみたい方は`gem install qiita_trend`を実行後、下記コマンドをターミナルで実行してください
31
- **2019年7月24日 08時00分頃実行した結果です**
36
+ ### QiitaのDailyのトレンドを10秒で取得する
37
+
38
+ ターミナルでコマンド`gem install qiita_trend`、`ruby -r qiita_trend -e "pp QiitaTrend::Trend.new.items"`を実行することでQiitaのトレンドを10秒で取得できます
39
+ **2019年8月2日08時00分頃に実行した結果です**
32
40
 
33
41
  ```shell
34
- $ ruby -r qiita_trend -e "pp QiitaTrend::Trend.new.items"
42
+ $ gem install qiita_trend
43
+ Fetching qiita_trend-0.2.3.gem
44
+ Successfully installed qiita_trend-0.2.3
45
+ Parsing documentation for qiita_trend-0.2.3
46
+ Installing ri documentation for qiita_trend-0.2.3
47
+ Done installing documentation for qiita_trend after 0 seconds
48
+ 1 gem installed
35
49
 
36
- [{"title"=>"2019年版 最先端のフロントエンド開発者になるために学ぶべきこと",
50
+ $ ruby -r qiita_trend -e "pp QiitaTrend::Trend.new.items"
51
+ [{"title"=>"「ソースコード全部読まなきゃ病」と闘う方法",
52
+ "user_name"=>"guitar_char",
53
+ "user_image"=>
54
+ "https://qiita-image-store.s3.amazonaws.com/0/114709/profile-,images/1473712681",
55
+ "likes_count"=>130,
56
+ "is_new_arrival"=>false,
57
+ "article"=>"https://qiita.com/guitar_char/items/3b31f7cc79333120b452"},
58
+ {"title"=>"恐竜でもわかるJavaScript",
37
59
  "user_name"=>"baby-degu",
38
60
  "user_image"=>
39
61
  "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407975/profile-images/1557035044",
40
- "likes_count"=>546,
41
- "is_new_arrival"=>false,
42
- "article"=>"https://qiita.com/baby-degu/items/da30fa71b8f48fffc568"},
43
- {"title"=>"【俺は絶対楽してやるんだ】徹底的に学習モチベーションを維持する方法",
44
- "user_name"=>"rexiaxm7",
45
- "user_image"=>"https://avatars0.githubusercontent.com/u/39663347?v=4",
46
- "likes_count"=>477,
62
+ "likes_count"=>129,
47
63
  "is_new_arrival"=>false,
48
- "article"=>"https://qiita.com/rexiaxm7/items/b745185f319edd1a17ab"},
64
+ "article"=>"https://qiita.com/baby-degu/items/d1bf48b6595bab2fda6f"},
49
65
  ...
50
66
  ```
51
67
 
52
- 自分のプロジェクトで使用したい場合は下記のように記述することで使用することができます
68
+ ### ワンライナーで使ってみる
69
+
70
+ 先に`gem install qiita_trend`を実行しておくこと
71
+
72
+ #### Dailyのトレンドの簡易表示
73
+
74
+ index + タイトル名 + いいね数 + ユーザー名
75
+
76
+ ```shell
77
+ $ ruby -r qiita_trend -e "QiitaTrend::Trend.new.items.each_with_index {|t, i| puts '[' + i.to_s + ']' + t['title'] + '(' + t['likes_count'].to_s + ')' + ' - ' + t['user_name']}"
78
+
79
+ [0]「ソースコード全部読まなきゃ病」と闘う方法(130) - guitar_char
80
+ [1]恐竜でもわかるJavaScript(129) - baby-degu
81
+ [2]「ようこそ・・・『テストの世界』へ・・・」(168) - shonansurvivors
82
+ [3]水田の取水バルブを定点カメラで監視し、水田の水があるかないか、給水されているか否かを機械学習で識別してみた(114) - mix_dvd
83
+ [4]ハムスターの写真を撮りたい(84) - mk-takahashi
84
+ [5]CSSを非同期ロードする最も簡単な方法(64) - rana_kualu
85
+ ```
86
+
87
+ #### Dailyのトレンドのタイトル一覧
88
+
89
+ ```shell
90
+ $ ruby -r qiita_trend -e "QiitaTrend::Trend.new.items.each {|t| puts t['title']}"
91
+
92
+ 「ソースコード全部読まなきゃ病」と闘う方法
93
+ 恐竜でもわかるJavaScript
94
+ 「ようこそ・・・『テストの世界』へ・・・」
95
+ 水田の取水バルブを定点カメラで監視し、水田の水があるかないか、給水されているか否かを機械学習で識別してみた
96
+ ハムスターの写真を撮りたい
97
+ CSSを非同期ロードする最も簡単な方法
98
+ ```
99
+
100
+ #### Dailyのトレンドのうち`new`がついているものをブラウザで一括で開く
101
+
102
+ ```shell
103
+ $ ruby -r qiita_trend -e "QiitaTrend::Trend.new.new_items.each {|t| system('open ' + t['article'])}"
104
+ ```
105
+
106
+ ## 自分のプロジェクトで使用する
107
+
108
+ Gemfileにqiita_trendを追加する
53
109
 
54
110
  ```ruby
55
- qiita_trend = QiitaTrend::Trend.new
111
+ gem 'qiita_trend'
112
+ ```
113
+
114
+ Gemfileに追加したら`bundle install`してください
115
+
116
+ ### Dailyのトレンドを取得する
117
+
118
+ ```ruby
119
+ daily_trend = QiitaTrend::Trend.new
56
120
 
57
121
  # Dailyのトレンドを全て取得する
58
- p qiita_trend.items
122
+ p daily_trend.items
123
+
59
124
  # DailyのトレンドでNEWのものだけを取得する
60
- p qiita_trend.new_items
125
+ p daily_trend.new_items
126
+ ```
127
+
128
+ #### Weekly、Monthlyのトレンドを取得する
129
+
130
+ WeeklyとMonthlyのトレンドを取得する時はQiitaにログインしている必要があるため、ログイン出来るユーザーとパスワードの設定が必要です
131
+
132
+ ```ruby
133
+ # Qiitaにログインするためのユーザーとパスワードの設定をする
134
+ QiitaTrend.configure do |config|
135
+ config.user_name = 'ユーザー名'
136
+ config.password = 'パスワード'
137
+ end
138
+
139
+ # Weeklyの全てのトレンドとNEWのものだけを取得
140
+ weekly_trend = QiitaTrend::Trend.new(QiitaTrend::TrendType::WEEKLY)
141
+ p weekly_trend.items
142
+ p weekly_trend.new_items
143
+
144
+ # Monthlyの全てのトレンドとNEWのものだけを取得
145
+ monthly_trend = QiitaTrend::Trend.new(QiitaTrend::TrendType::MONTHLY)
146
+ p monthly_trend.items
147
+ p monthly_trend.new_items
148
+ ```
149
+
150
+ #### itemsメソッド、new_itemsメソッドについて
151
+
152
+ itemsメソッド、new_itemsメソッドは`Array`を返します
153
+ Array一つ一つは`Hash`になります
154
+
155
+ ```shell
156
+ irb(main):002:0> QiitaTrend::Trend.new.items.class
157
+ => Array
158
+ irb(main):003:0> QiitaTrend::Trend.new.items[0].class
159
+ => Hash
160
+ ```
161
+
162
+ Hashは以下の構成になっています
163
+
164
+ ```shell
165
+ irb(main):004:0> pp QiitaTrend::Trend.new.items[0]
166
+ {"title"=>"「ソースコード全部読まなきゃ病」と闘う方法",
167
+ "user_name"=>"guitar_char",
168
+ "user_image"=>
169
+ "https://qiita-image-store.s3.amazonaws.com/0/114709/profile-images/1473712681",
170
+ "likes_count"=>130,
171
+ "is_new_arrival"=>false,
172
+ "article"=>"https://qiita.com/guitar_char/items/3b31f7cc79333120b452"}
173
+ ```
174
+
175
+ | key | 内容 | 備考 |
176
+ |:--------------:|:-------------------------:|:---------------------:|
177
+ | user_name | ユーザー名 | |
178
+ | user_image | ユーザー画像URL | |
179
+ | likes_count | いいね数 | 数値が入ります |
180
+ | is_new_arrival | 「NEW」のついている記事か | TrueかFalseが入ります |
181
+ | article | 記事のURL | |
182
+
183
+ #### キャシュファイルの出力先を変更する
184
+
185
+ キャッシュファイルはデフォルトだと`ユーザーのHOMEディレクトリ/qiita_cache/`に出力されます
186
+
187
+ ```
188
+ /Users/dodonki1223/qiita_cache/2019080205_daily.html
189
+ /Users/dodonki1223/qiita_cache/2019080205_weekly
190
+ /Users/dodonki1223/qiita_cache/2019080205_monthly.html
191
+ ```
192
+
193
+ プログラムで下記のように追記してください
194
+
195
+ ```ruby
196
+ # キャッシュの出力先ディレクトリを変更する
197
+ # ユーザーのHOMEディレクトリ配下のhogeディレクトリに出力する設定
198
+ # /Users/dodonki1223/hoge/
199
+ QiitaTrend.configure do |config|
200
+ config.cache_directory = Dir.home + '/hoge/'
201
+ end
61
202
  ```
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QiitaTrend
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.4'
5
5
  end
data/qiita_trend.gif ADDED
Binary file
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.2.3
4
+ version: 0.2.4
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-01 00:00:00.000000000 Z
11
+ date: 2019-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -178,6 +178,7 @@ files:
178
178
  - lib/qiita_trend/trend_type.rb
179
179
  - lib/qiita_trend/version.rb
180
180
  - qiita_trend.gemspec
181
+ - qiita_trend.gif
181
182
  homepage: https://github.com/dodonki1223/qiita_trend
182
183
  licenses:
183
184
  - MIT