Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
158
Help us understand the problem. What is going on with this article?
@okadato623

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

この記事について

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

実装イメージ。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位 機械学習による株価予想の十八手(59いいね)

by heegle

2位 Laravel 製アプリケーションに対する自動テストでなにをどうテストすればいいか(27いいね)

by nunulk

3位 Kaggle Expertになるまで勉強したことを全て書く(20いいね)

by Yuki_Kaggler

4位 【解決】2ndモニターをつけると、Wifi接続不安定になる(15いいね)

by GeekMasahiro

5位 Arduino Dueに3相同期・三角波・相補PWMを打たせる(13いいね)

by motorcontrolman

6位 Chrome拡張作ったら異世界転生した件(9いいね)

by zakuroishikuro

7位 【GASでLINE Bot作成】現在地の近くのおすすめのごはん屋さんを教えてくれるLINE Botを作った(8いいね)

by yuikoito

8位 inner joinで条件を設定しない時(8いいね)

by risaitou4329

9位 【入門】はじめての Cypress(7いいね)

by eyuta

10位 プライベートクラウドとパブリッククラウドとは?(7いいね)

by Mikoto_Hashimoto

11位 DjangoでDBを一括更新する(7いいね)

by risaitou4329

12位 Reactアプリケーションを高速化するための方法(6いいね)

by SoraKumo

13位 1人で開発したら数ヶ月かかるマッチングサービスを、ローコード・ノーコードで3日で1人で作った(Airtable/Notion/Zapier/Sendgrid/Firebase)(6いいね)

by k_s

14位 【社内勉強会資料】iOSアプリ開発のナレッジ全般〜管理・設計・テスト・リリース・運用のポイント〜(6いいね)

by y-some

15位 Laravel8でHTTPテスト(6いいね)

by MitsukiYamauchi

16位 [SwiftUI]APIを叩くだけから@escapingを使用してMVVMを実装する方法(4いいね)

by yuujioka

17位 Xcodeで複数形を含むローカライズフローの自動化(4いいね)

by toshi0383

18位 優れたチームになるための5つのルール(Google談)(4いいね)

by e99h2121

19位 そのまま、コピペーでできます!LineNotify api でlineグループにメッセージを送信する(PHP)(3いいね)

by dymkou

20位 ちょ、、待てよ、、ちゃんとNGINX入るやん(3いいね)

by chomateyo

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

1位 押印廃止は馬鹿げているのか(115いいね)

2位 DockerでPython実行環境を作ってみる(108いいね)

3位 綺麗なコミットログを作りたいときのgitテクニック(107いいね)

4位 PyTorch Lightning 2021 (for MLコンペ)(70いいね)

5位 制約のある人とない人が共に気持ちよく働けるようにするために(64いいね)

6位 由来で覚えるlinux用語集(64いいね)

7位 機械学習による株価予想の十八手(59いいね)

8位 【VSCode】画面共有と一緒に入力したキーも共有できるツールが便利(44いいね)

9位 Reactにおけるスタイリング手法まとめ(37いいね)

10位 Next.js 11の新機能紹介~パフォーマンス向上、ライブコーディング等々~(36いいね)

11位 Nuxt.jsとNext.jsを比較して、表とグラフにまとめてみた!(34いいね)

12位 Markdownファイル校正手順 - 実務編(34いいね)

13位 フィボナッチ数列を求めるワンライナー各言語まとめ(32いいね)

14位 【初心者でもわかる】〇〇禁止できるCSSたち(32いいね)

15位 Svelte でゲーム音楽検索サイト作った話(31いいね)

16位 Reactに漬かっていた私がVue3に挑戦して感じたこと(29いいね)

17位 Swift5.5の変更点まとめ(27いいね)

18位 Laravel 製アプリケーションに対する自動テストでなにをどうテストすればいいか(27いいね)

19位 国土地理院の標高データ(DEM)をQGIS上でサクッとGeoTIFFを作って可視化するプラグインを公開しました!(Terrain RGBもあるよ)(26いいね)

20位 【Python】ターミナル表示で色を付けたい。(21いいね)

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

158
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  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
okadato623
スタートアップではたらくかたわら、趣味で個人開発を嗜むひよっこSREです。 座右の銘は「遊び心駆動人生」
studist
「伝えることを、もっと簡単に」をミッションにビジュアルSOPマネジメントプラットフォームのBtoB SaaS「Teachme Biz」を開発・運営するスタートアップ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
158
Help us understand the problem. What is going on with this article?