SHIP(Sakae Higashi Internet Program)や栄東中高ホームページの栄東ニュースを定期的にスクレイピングし、更新があれば通知するシステムです。SHIPの閉鎖に伴いサービスの提供を終了しました。
システム構成
DiscordのサーバーとLINE公式アカウント、Twitter、Webで運用していました。Discord.pyをHeroku上で常時稼働させ、10分おきにループを回し予めセットしておいた時間になるとSHIPや栄東ニュースのスクレイピングなどを行います。
スクレイピングにはseleniumを使っています。中高それぞれの「連絡事項」「学習教材」「学校通信」のページを1日2 ~ 5回程度取得しています。データベースに保存されていないものが見つかればそのリンクをクリックし、説明文やファイルのダウンロードとSHIP-notify側のデータベースへのアップロードを行います。

Web 版
認証にFirebase Authenticationを通し学校以外のドメインのアカウントからのログインをブロックしています。

データベース
当初はHeroku上での利用がサポートされているHeroku Postgresを使っていました。Web版の実装に伴い、クライアント側から直接データを取得できるFirebase Cloud Firestoreへ移行しています。
