README.md in qiita_trend-0.4.8 vs README.md in qiita_trend-0.4.9

- old
+ new

@@ -6,14 +6,14 @@ ![01_qiita_trend](https://raw.githubusercontent.com/dodonki1223/image_garage/master/qiita_trend/01_qiita_trend.gif) ## 概要 -- [Qiita](https://qiita.com/)のTOPページをスクレイピングしDaily、Weekly、Monthlyのトレンドを取得します +- [Qiita](https://qiita.com/)のTOPページをスクレイピングしTOPページに表示されているトレンドを取得します - [Qiita](https://qiita.com/)のAPIにトレンドを取得する方法がないため -- トレンドはDaily、Weekly、Monthlyそれぞれを日付と更新時間(5時と17時)の組み合わせごとにキャッシュを行います -- Weekly、Monthlyに関してはQiitaにログインしないと取得できないためユーザー名とパスワード設定する必要があります(Dailyに関しては何も設定しなくても取得できます) +- トレンドは「通常のもの(通常トレンド)」と「ログインした時に表示されるユーザーのトレンド(ユーザートレンド)」のそれぞれを日付と更新時間(5時と17時)の組み合わせごとにキャッシュを行います +- ユーザートレンドに関してはQiitaにログインしないと取得できないためユーザー名とパスワード設定する必要があります(通常トレンドに関しては何も設定しなくても取得できます) - 過去のトレンドを取得することができます(**あくまでもキャッシュファイルから復元するためキャッシュファイルの無い過去のトレンドは取得することができません**) - いいね数は性質上取得した時の時間に依存します。どうしても現在時刻のいいね数が欲しい場合はキャシュファイルを手動で削除してもう一度実行してください ## ドキュメント @@ -25,11 +25,11 @@ ```shell $ gem install qiita_trend ``` -### QiitaのDailyのトレンドを10秒で取得する +### Qiitaの通常トレンドを10秒で取得する ターミナルで`ruby -r qiita_trend -e "pp QiitaTrend::Trend.new.items"`を実行することでQiitaのトレンドを10秒(**gem install qiita_trendも含めて**)で取得できます ```shell $ ruby -r qiita_trend -e "pp QiitaTrend::Trend.new.items" @@ -51,11 +51,11 @@ "likes_count"=>103, "is_new_arrival"=>false}, ... ``` -### Dailyのトレンドの簡易表示 +### 通常トレンドの簡易表示 index + タイトル名 + いいね数 + ユーザー名 ```shell $ 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']}" @@ -66,11 +66,11 @@ [3]畑に農作物を植えてみたけど、忙しくて毎日水やりにいけないのに日照り続きでどうしたものかと悩んでいたら、自動で散水する方法を思いついて試してみたという話(86) - mix_dvd [4]KAGGLEでどこから手を付けていいか分からず学ぶことが多すぎてまとめてみた(89) - aokikenichi [5]畳み込みニューラルネットワークは何を見ているか(69) - okn-yu ``` -### Dailyのトレンドのタイトル一覧 +### 通常トレンドのタイトル一覧 ```shell $ ruby -r qiita_trend -e "QiitaTrend::Trend.new.items.each {|t| puts t['title']}" 2行でwebpack.config.jsで補完を効かせる方法 @@ -79,11 +79,11 @@ 畑に農作物を植えてみたけど、忙しくて毎日水やりにいけないのに日照り続きでどうしたものかと悩んでいたら、自動で散水する方法を思いついて試してみたという話 KAGGLEでどこから手を付けていいか分からず学ぶことが多すぎてまとめてみた 畳み込みニューラルネットワークは何を見ているか ``` -### Dailyのトレンドのうち`new`がついているものをブラウザで一括で開く +### 通常トレンドのうち`new`がついているものをブラウザで一括で開く ```shell $ ruby -r qiita_trend -e "QiitaTrend::Trend.new.new_items.each {|t| system('open ' + t['article'])}" ``` @@ -95,62 +95,63 @@ gem 'qiita_trend' ``` Gemfileに追加したら`bundle install`してください -### Dailyのトレンドを取得する +### 通常トレンドを取得する ```ruby -daily_trend = QiitaTrend::Trend.new +normal_trend = QiitaTrend::Trend.new -# Dailyのトレンドを全て取得する -p daily_trend.items +# 通常トレンドを全て取得する +p normal_trend.items -# DailyのトレンドでNEWのものだけを取得する -p daily_trend.new_items +# 通常トレンドでNEWのものだけを取得する +p normal_trend.new_items ``` -### Weekly、Monthlyのトレンドを取得する +### ユーザートレンドを取得する -WeeklyとMonthlyのトレンドを取得する時はQiitaにログインしている必要があるため、ログイン出来るユーザーとパスワードの設定が必要です +ユーザートレンドを取得する時はQiitaにログインしている必要があるため、ログイン出来るユーザーとパスワードの設定が必要です ログインできないユーザー名とパスワードを指定している時は`LoginFailureError`の例外が発生します ```ruby # Qiitaにログインするためのユーザーとパスワードの設定をする QiitaTrend.configure do |config| config.user_name = 'ユーザー名' config.password = 'パスワード' end -# Weeklyの全てのトレンドとNEWのものだけを取得 -weekly_trend = QiitaTrend::Trend.new(QiitaTrend::TrendType::WEEKLY) -p weekly_trend.items -p weekly_trend.new_items +# ユーザーのレンドを取得 +personal_trend = QiitaTrend::Trend.new(QiitaTrend::TrendType::PERSONAL) +p personal_trend.items +``` -# Monthlyの全てのトレンドとNEWのものだけを取得 -monthly_trend = QiitaTrend::Trend.new(QiitaTrend::TrendType::MONTHLY) -p monthly_trend.items -p monthly_trend.new_items +ログインするユーザーとパスワードは環境変数に設定することもできます + ``` +export QIITA_TREND_USER_NAME='ユーザー名' +export QIITA_TREND_PASSWORD='パスワード' +``` ### キャッシュファイルからトレンドを取得する キャッシュファイルが存在しない場合は`NotExistsCacheError`の例外が発生します -WeeklyもMonthlyの取得方法もDailyと同様です +ユーザートレンドの取得方法も通常トレンドと同様です ```ruby -# 2019年8月8日5時更新分のDailyのトレンドを取得する -daily_trend_05 = QiitaTrend::Trend.new(QiitaTrend::TrendType::DAILY, '2019080805') +# 2019年8月8日5時更新分の通常トレンドを取得する +normal_trend_05 = QiitaTrend::Trend.new(QiitaTrend::TrendType::NORMAL, '2019080805') -p daily_trend_05.items -p daily_trend_05.new_items +p normal_trend_05.items +p normal_trend_05.new_items -# 2019年8月8日17時更新分のDailyのトレンドを取得する -daily_trend_17 = QiitaTrend::Trend.new(QiitaTrend::TrendType::DAILY, '2019080817') +# 2019年8月8日17時更新分のnormalのトレンドを取得する +normal_trend_17 = QiitaTrend::Trend.new(QiitaTrend::TrendType::NORMAL, '2019080817') -p daily_trend_17.items -p daily_trend_17.new_items +p normal_trend_17.items +p normal_trend_17.new_items ``` ### itemsメソッド、new_itemsメソッドについて itemsメソッド、new_itemsメソッドは`Array`を返します @@ -223,23 +224,22 @@ <td>数値が入ります</td> </tr> <tr> <td>is_new_arrival</td> <td>「NEW」のついている記事か</td> - <td>TrueかFalseが入ります</td> + <td>TrueかFalseが入ります。ログインした時に表示されるユーザーのトレンドに関してはnilになります</td> </tr> </tbody> </table> ### キャシュファイルの出力先を変更する キャッシュファイルはデフォルトだと`ユーザーのHOMEディレクトリ/qiita_cache/`に出力されます ``` -/Users/dodonki1223/qiita_cache/2019080205_daily.html -/Users/dodonki1223/qiita_cache/2019080205_weekly -/Users/dodonki1223/qiita_cache/2019080205_monthly.html +/Users/dodonki1223/qiita_cache/2019080205_normal.html +/Users/dodonki1223/qiita_cache/2019080205_personal ``` プログラムで下記のように追記してください ```ruby @@ -247,9 +247,15 @@ # ユーザーのHOMEディレクトリ配下のhogeディレクトリに出力する設定 # /Users/dodonki1223/hoge/ QiitaTrend.configure do |config| config.cache_directory = Dir.home + '/hoge/' end +``` + +キャッシュファイルの出力先は環境変数に設定することもできます + +``` +QIITA_TREND_CACHE_DIR='/Users/dodonki1223/hoge/' ``` ## 注意 このgemは勉強用で作成したものでソースにはアンチパターンなコメント(処理を説明するようなコメントなど)が書かれています。そこはご容赦ください