「Discord ボットを作ってみる」
https://qiita.com/nanbuwks/items/0206991f7c464209087b
を拡張して、「進捗どうですかボット」を作っています。
これは、特定の URL をクローしてハッシュを比較し、前回チェック時のハッシュ値と異なれば「捗ってますね」、変更なければ「進捗ないです」と表示するものです。
チェックするURLは、メンバーの手掛けている Google Drive 、 Qiita、GitHub、Wiki、Evernote など様々です。
しかしながら例えば Qiita の記事をクローしても、広告などが差し挟まれるためにコンテンツが更新されているかどうかそのままではわかりません。
そこでコンテンツを取得するために、サービスに合わせて調整することになります。
サービスごとにTipsをまとめました。
条件
- 作成文書を取得できる URL を調べる
- URL のアクセスは Get パラメータのみ
- URL のアクセスは Python の reqyests ライブラリで行う
Qiita
ページのURLの後に .md
を加えると、本文の MarkDown ファイルが取得できます。
書きかけの記事の場合は、一旦限定共有公開にしておいてそれのページURLを用います。
Google document
共有リンクが以下のようになっている場合、
https://docs.google.com/document/d/1U3L5jIB5k7wjRRLh0pGhW-PWgspVDHhQKzuM0xNee6w/edit?usp=sharing
?
から後ろを ?format=txt
に変更するとテキストファイルで取得できます。
https://docs.google.com/document/d/1U3L5jIB5k7wjRRLh0pGhW-PWgspVDHhQKzuM0xNee6w/export?format=txt
GitHub
レポジトリURLが以下のようになっている場合、
https://github.com/nanbuwks/discord_progress_check_bot
以下のようにしてレポジトリの zip を取得して更新をチェックします。もう少し簡単な方法がないかな?
https://github.com/nanbuwks/discord_progress_check_bot/archive/refs/heads/main.zip
PukiWiki
以下の記事
http://openforce.project2108.com/index.php?%E8%83%BD%E7%99%BB%E5%8D%8A%E5%B3%B6%E6%94%AF%E6%8F%B42024Summer
の本体はサーバに格納されている txt ファイルです。 記事名を UTF または EUC でエンコードして txt ファイル直リンクを作ります。
http://openforce.project2108.com/wiki/E883BDE799BBE58D8AE5B3B6E694AFE68FB43230323453756D6D6572.txt
evernote
共有リンクのURL
https://www.evernote.com/shard/s738/sh/a026e155-b0b7-c840-799a-f9ad0993e1d6/uJ1ZvZT8afR4nFugZ8VPo3UKuUyleeji_VaKH1S956YTZF03GEGrnVrIzA
に手を加えて以下のようにする。
https://www.evernote.com/shard/s738/sh/a026e155-b0b7-c840-799a-f9ad0993e1d6/uJ1ZvZT8afR4nFugZ8VPo3UKuUyleeji_VaKH1S956YTZF03GEGrnVrIzA?json=1&rdata=0
cf.,「Evernote の共有リンクから note の内容を取得」
https://qiita.com/nanbuwks/items/233a86031bad88005e59
},