LoginSignup
550
177

More than 1 year has passed since last update.

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

Last updated at Posted at 2019-09-07

この記事について

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

実装イメージ。`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位 アウトプットって何ぞや!?(6いいね)

by Masaru_Tech

2位 Material Design IconsがMaterial Symbolsに進化していた(6いいね)

by xrxoxcxox

3位 gem shrineを使った画像ファイルのダイレクトアップロード・バックエンドアップロードについて(5いいね)

by Dai_Kentaro

4位 人類はAIに勝てるか?オレオとその類似商品識別テストでGoogleAIと真剣勝負してみた!(4いいね)

by yoshio333333

5位 buttonタグの中央寄せについて(4いいね)

by shimajiri

6位 WEB+DB PRESS Vol.127 特集 作って学ぶPhoenix 第1章 を読んでみた(4いいね)

by Alicesky2127

7位 Amazon SES導入(4いいね)

by Dai_Kentaro

8位 Visual Studio Codeでimport React from "react"が消えるときはこれが原因かも(4いいね)

by mayobimu

9位 ソースが空の謎のサイト「therickroll.com」(4いいね)

by sevenc-nanashi

10位 ruby-build で openssl がインストールされちゃう話(4いいね)

by atm-snag

11位 オセロAI世界1位が最弱オセロAIを作った話(技術編)(4いいね)

by Nyanyan_Cube

12位 大好きな有名人の画像ばかりで機械学習した、オリジナルの顔判定ツールを作ってみた!(3いいね)

by Nori777

13位 超初心者向け HTMLで要素を横並びにしたい!! 時(3いいね)

by tatsukikane

14位 CloudWatchカスタムメトリクスのデータをboto3で取得(2いいね)

by k_senbei

15位 乗換情報をさくっと調べるLINEbot作成に挑戦してみた(2いいね)

by kmt890

16位 ROS2(rclcpp) + VSCode + Dockerのデバッグ付き開発環境(2いいね)

by iwatake2222

17位 【論文紹介】食品のカテゴリ・材料・調理法の知見を利用した画像による食品カロリー推定・マルチタスクCNN(2いいね)

by Kazuki-Komori

18位 PythonのTypedDictのキーの有無・値の型をチェックするツールtypeddict-validatorを作った(2いいね)

by SogoK

19位 SPM対応していないライブラリをSPM Package内で利用する(1いいね)

by kntkymt

20位 B - Chocolate(1いいね)

by KKDDD

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

1位 Magicodeという簡単に稼げるエンジニア向けブログサービスを作ったので使って欲しい(110いいね)

2位 自作AIがスーパーマリオ1-1をやっとのことでクリアした(95いいね)

3位 インポスター症候群になった(92いいね)

4位 君のGitHubリポジトリをもう一段階上のレベルに引き上げよう(87いいね)

5位 頑張っても成長できなかったエンジニアが「ひとりOKR」という成長する仕組みを編み出した(86いいね)

6位 無料で登録不要、オフラインでも使える機械学習ツールを作ってみた(67いいね)

7位 製造業でデータマネジメントをやることになった話(48いいね)

8位 新人プログラマの方におすすめしたい技術書5選(47いいね)

9位 新人さんにすすめる (弊社の) 有益な記事達 2022春(46いいね)

10位 GitHub の OAuth 実装の仕様違反とセキュリティ上の考慮事項(43いいね)

11位 Vite + React + TypeScriptで、Qiitaの記事を書きたくなるChrome拡張を爆速で作った(42いいね)

12位 やっと読めるようになった「現場で役立つシステム設計の原則」についてアウトプット(37いいね)

13位 【AtCoder解説】PythonでABC248のA,B,C,D,E,F問題を制する!(34いいね)

14位 海外のガチHTMLコーダーに阿部寛のホームページを見てもらった(30いいね)

15位 あなたは本当に「プログラミングができない、向いてない」のか? 〜うるう年判定プログラムで考える〜(26いいね)

16位 エンジニア×非エンジニアにおける1on1のやり方(26いいね)

17位 【NEMTUSハッカソン2022】ブロックチェーンを組み合わせたタイピングゲームを作ってみた(25いいね)

18位 浅ぁいネットワーク講座 第2回(21いいね)

19位 エンジニア歴2年なりに感じている、仕事で良いアウトプットをするコツ(20いいね)

20位 もしシステムエンジニアが「おもてなし幻想」を読んだら(17いいね)

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

550
177
66

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
550
177