この記事について
こちらの記事の更新が止まっているようなので、避難所をつくりました。※ 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いいね)
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いいね)
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を使用させていただいております。