Skip to content

newt239/SHIP-notify-public

Repository files navigation

SHIP-notify

概要

SHIPに新しいファイルが投稿された際に通知するシステム。

PaaSとしてHerokuを使用。Discord.pyの@tasks.loopで600秒毎に現在時間を確認し、予め設定していた時間であればSHIPやその他このシステムで更新を取得しているプラットフォームへAPIリクエストやスクレイピングを行い、データベースと差があれば更新し各媒体での通知を行う。

SHIPのスクレイピングにはseleniumを使用。中高それぞれの「連絡事項」「学習教材」「学校通信」のページを1日2~5回程度取得している。データベースに保存されていないものが見つかればそのリンクをクリックし、説明文やファイルのダウンロード&SHIP-notify側のデータベースへのアップロードを行う。

データベースはFirebaseのFirestoreとStrageを使用。ファイルの保存に関しては無料枠の容量で抑えるため中学のページのものは保存を行っていない。

その他備考

webDriver バージョン設定

環境変数 CHROMEDRIVER_VERSIONここに記載されているバージョンをセットする。 現在のバージョンは99.0.4844.51