【毎日自動更新】Qiitaのデイリーいいねランキング!ウィークリーもあるよ(避難所)

この記事について

こちらの記事の更新が止まっているようなので、避難所をつくりました。※ 2019/10/18更新

実装イメージ。AWS lambdaで以下のfunctionを8時間ごとに定期実行しています。
import os
import json
import codecs
import requests
from datetime import datetime, date, timedelta


def patch_contents(contents):
    item_data = {
        'title': '【毎日自動更新】Qiitaのデイリーいいねランキング!ウィークリーもあるよ(避難所)',
        'body': f'{contents}',
        'tags': [{'name': 'Qiita'}]
    }
    headers = {
        'Authorization': 'Bearer {SECRET_TOKEN}'}

    requests.patch(
        'https://qiita.com/api/v2/items/50b96ed7b7bbe8ff35e8', headers=headers, json=item_data)


def create_contents(contents):
    today = datetime.strftime(datetime.today(), '%Y/%m/%d')
    yesterday = datetime.strftime(
        datetime.today() - timedelta(days=1), '%Y-%m-%d')
    daily = json.loads(requests.get(
        f'https://us-central1-qiita-trend-web-scraping.cloudfunctions.net/qiitaScraiping/daily/{yesterday}').text)
    weekly = json.loads(requests.get(
        f'https://us-central1-qiita-trend-web-scraping.cloudfunctions.net/qiitaScraiping/weekly/{yesterday}').text)

    contents += '# この記事について'
    contents += f'[こちらの記事](https://qiita.com/takeharu/items/bb154a4bc198fb102ff3)の更新が止まっているようなので、避難所をつくりました。※ {today}更新'
    contents += '# デイリーいいねランキング'
    for i, data in enumerate(daily['data'], 1):
        contents += f'#### {i}位 [{data['title']}]({data['url']})({data['likes_count']}いいね)'
        contents += 'by ' + f'[{data['user']['id']}](https://qiita.com/{data['user']['id']})'

    contents += '# ウィークリーいいねランキング'
    for i, data in enumerate(weekly['data'], 1):
        contents += f'#### {i}位 [{data['title']}]({data['url']})({data['likes_count']}いいね)'

    contents += '※ 元記事の更新が再開したら、こちらの更新は停止する予定です。'
    contents += '※ バグがあればTwiiterでいただけると助かります。(コメントがたまると、このページ自体が重くなるので。。'
    contents += 'Twitter: [@okadato623](https://twitter.com/okadato623)'
    contents += 'データの取得元は以下のAPIを使用させていただいております :pra:'
    contents += '- [Qiitaいいね数ランキングAPIの作成](https://qiita.com/zonbitamago/items/1027b532b174e5ee04b3)'

    return contents


def lambda_handler(event, context):
    contents = ''
    contents = create_contents(contents)
    patch_contents(contents)

デイリーいいねランキング

1位 OAuth 2.0 の勉強のために認可サーバーを自作する(34いいね)

by TakahikoKawasaki

2位 Twitter APIのWrite権限を凍結された2019夏(16いいね)

by kinmi

3位 Nuxt.js(SPA)+FirebaseなWebサービスで強制的に更新する(リビジョンアップ対策)(11いいね)

by kira_puka

4位 RustでAPNGのライブラリを作ってみた(11いいね)

by poccariswet

5位 メンヘラがツイートを形態素解析して気分の波を調べた結果www(7いいね)

by yusuke_astro

6位 モナドに至る道 at Nakameguro.hs #2(6いいね)

by lotz

7位 javascriptでWeb神経衰弱を作ったー。(5いいね)

by nakano1120

8位 15行のhtmlでマインスイーパーを作った(5いいね)

by nagtkk

9位 Nuxt.js(SPA)とFirebaseで強制リビジョン(バージョン)アップするならPWAモジュールを使おう(5いいね)

by hecateball

10位 LaravelのMigrationファイルをまとめる(4いいね)

by kazuhei

11位 自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法(4いいね)

by mima_ita

12位 誤差伝播ライブラリを作った&誤差伝播公式の導出(4いいね)

by kaityo256

13位 Helm環境でConfigMapの更新を検知してPodを自動デプロイする方法(3いいね)

by syogun

14位 機械学習関係の論文を読み書きするための数式・記号まとめ(3いいね)

by karaage0703

15位 PlayCanvasのエディターでVueが使える(3いいね)

by sutobu000

16位 Play with Docker で SSHした時のメモ(3いいね)

by kane-hiro

17位 セイウチ演算子って何?(3いいね)

by Nipper1357

18位 TypeScriptでVue.setを型安全にしたい(3いいね)

by simochee

19位 UserDefaultsに辞書型を入れるとき、KeyはStringでなければならないという制約がある(3いいね)

by eg_19_

20位 [Swift] 画像の色を変更する(2いいね)

by Kon_pippiana

ウィークリーいいねランキング

1位 GitHubのスターは金にならない(688いいね)

2位 Linux ファイルシステムを理解したい(522いいね)

3位 『エンジニアよ、大志を抱け』~まずスキルを磨き、ビジネスを覚え、そしてユーザー企業で活躍しよう(512いいね)

4位 新卒のトレーナーをするときの個人的まとめ(491いいね)

5位 今すぐJavaScriptデバッグ効率を上げるconsoleテクニック(460いいね)

6位 「美しい」にモヤったら「認知負荷が小さい」と言いかえよう(247いいね)

7位 10分でわかる構造化マークアップ(243いいね)

8位 Nuxt + Firebaseで読書感想文を書けるWebアプリを開発しました(243いいね)

9位 2019年注目のJavaScriptアニメーションライブラリ11選(218いいね)

10位 VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。(176いいね)

11位 【Swift】中二病の突然の発作に備えて、CALayerで魔法陣を描く【CoreAnimation 】(136いいね)

12位 DockerやECR, ECS, Fargateなど、コンテナ周りのAWS知識を効率的にキャッチアップしたい人のために(136いいね)

13位 未経験者には全てが黒魔術に見える呪いがある(129いいね)

14位 我々はなぜ監視を行うのか【第一章】~監視システム導入編~(123いいね)

15位 最強の技「グーチョキパー」は本当にグーとチョキとパーの全てに近いのか(122いいね)

16位 距離センサ入門(ステレオカメラ、プロジェクション、LiDAR)(120いいね)

17位 JavaScript の"=="の挙動をハッキリさせておく(115いいね)

18位 保育園・小中学校での感染症流行状況がわかる Line Botの作成(112いいね)

19位 書籍「レガシーコードからの脱却」を読んでプロジェクトに適用すると良さそうな事(98いいね)

20位 flutter create してから5日で iPhone / Androidアプリを公開した話(91いいね)

※ 元記事の更新が再開したら、こちらの更新は停止する予定です。
※ バグがあればTwiiterでいただけると助かります。(コメントがたまると、このページ自体が重くなるので。。
Twitter: @okadato623
データの取得元は以下のAPIを使用させていただいております。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
  • ウィークリーいいねランキング
  • Why do not you register as a user and use Qiita more conveniently?
    You need to log in to use this function. Qiita can be used more conveniently after logging in.
    You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
    1. We will deliver articles that match you
      By following users and tags, you can catch up information on technical fields that you are interested in as a whole
    2. you can read useful information later efficiently
      By "stocking" the articles you like, you can search right away