Edited at

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


この記事について

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

実装イメージ。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位 10分でわかる構造化マークアップ(33いいね)

by yuzuru_xa


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

by kimullaa


3位 ROS1 -> ROS2のポーティングときにハマった点のまとめ(17いいね)

by hakuturu583


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

by simonritchie


5位 Linkedinのプロダクト・ディレクターが語るNPSのベストプラクティス決定版(14いいね)

by IkuyaM


6位 [Unity] 昼夜二枚のドット絵をもとにシームレスな夕焼けアニメーションをする(10いいね)

by Shinoda_Naoki


7位 マルウェア Miraiを解析してわかった知識(7いいね)

by hiroyuki7


8位 Pythonでクリックを自動化した(7いいね)

by MasterKoda


9位 Elm公式ガイドの未翻訳箇所の概要(2019/10/13時点)(7いいね)

by negiboudu


10位 Rider/ReSharperのUnity向けLive Template(4いいね)

by RyotaMurohoshi


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

by arutema47


12位 Vim patchダイジェスト [2019/09](4いいね)

by h_east


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

by doikatsuyuki


14位 [SwiftUI] NavigationLinkの遷移先を動的に変更する(3いいね)

by noppefoxwolf


15位 クローラ/スクレイピングの手法と使い分け(2いいね)

by reinhardhq


16位 英文で考える関数の作り方(2いいね)

by nunulk


17位 Raspberry Piで電子ペーパーモジュールを動作させる(2いいね)

by shin


18位 obnizで遠隔監視カメラ作成(2いいね)

by MikH


19位 【Vue.js】1番シンプルなToDoリスト(2いいね)

by Azu-MAX


20位 Node.js: StreamをパイプとTransformで変形する方法(2いいね)

by suin


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


1位 Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。(575いいね)


2位 HTML + CSSでリアルな目玉焼きを作る(333いいね)


3位 Firebaseで作ったWebサービスを3ヶ月運用してみて、ハマったこと・知っておきたかったこと(259いいね)


4位 「コンピュータシステムの理論と実装」をやりきりました(241いいね)


5位 コンテナ・セキュリティ入門 脆弱性(214いいね)


6位 きれいな動きしてるだろ。ウソみたいだろ。ReactNativeExpoで動いているんだぜ。それで。(205いいね)


7位 "なにも無いところをタップしてキャンセル"はUI・UX的にアリなのか(200いいね)


8位 最近話題のヘッドレスCMS「microCMS」+Nuxtでサイトを作った話(194いいね)


9位 [HTML/CSS]チェックボックスの仕組みを使ってえだまめ無限プチプチをつくるぞ(188いいね)


10位 10分でわかる「今更だけどTypeScriptってなに?」(186いいね)


11位 画像っぽい素数をつくる(176いいね)


12位 あまり頭を使わずVue + Vuetify + TypeScriptの初期描画を高速化するためにやったこと(120いいね)


13位 バリデーションをメソッドチェーンで書く方法(103いいね)


14位 gRPC-Web + React + Node.js + TypeScriptでシンプルなチャットサービスを作る(94いいね)


15位 会社で書いてるコードも「OSSで公開しちゃえ!」ってしたいからOSSガイドラインを作った(89いいね)


16位 AppleScriptで「Finderでボタンポチるだけで、そのディレクトリでターミナル開く」プログラムを作る(cloneしてドラッグ&ドロップするだけで利用可能)(87いいね)


17位 省略されてばっかりなHTML用語を読み解く(81いいね)


18位 iOSアプリ開発のデバッグ術(61いいね)


19位 Vueでよく書くユニットテストのパターン(49いいね)


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

※ 元記事の更新が再開したら、こちらの更新は停止する予定です。

※ バグがあればTwiiterでいただけると助かります。(コメントがたまると、このページ自体が重くなるので。。

Twitter: @okadato623

データの取得元は以下のAPIを使用させていただいております。

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