このプロジェクトについて

WATcalendarsは、軍事工科大学の8学部のウェブサイトを毎日訪問し、公開されている授業スケジュールを解析してiCalendar(.ics)形式で保存するプロジェクトです。これにより、学生はApple Calendar、Google、Outlook、Thunderbirdでスケジュールを購読し、常に最新の状態に保つことができます。 学生向け:watcalendars.byst.reにアクセスし、グループコードを入力して「カレンダーに追加」をクリックするだけです。サイトでは学部ごとのグループ閲覧も可能です。 開発者向け:プロジェクトはPython(3.9以上が必要)で書かれています。pipとPlaywright(Firefox/Chromium)を使用してインストールし、ファイアウォールの背後にある学部にも対応します。`watcal`コマンドは、リスト表示、選択した学部での実行、グループ検出、カレンダー生成、従業員リスト、インデックス再構築をサポートしています。デバッグオプション、学期の強制指定、ファイルログ記録も利用可能です。 アーキテクチャは、共通パイプライン(取得、解析、保存)に基づき、学部ごとのモジュールを持ちます。新しい学部を追加するには、仕様ファイル1つと登録のみが必要です。データはさまざまなソースから取得されます:WCYとWIMはHTTP、その他はブラウザ(Impervaの背後にあるPlansoft)、WIGは.docxファイルを使用します。プロジェクトは公開USOS APIを使用していますが、スケジュールが空のため、スクレイピングが必要です。 サイトはGitHub Pagesから提供され、.icsファイルも同じアドレスで利用できます。自動化はGitHub Actionsで毎日UTC午前0時に実行されます。テスト(79件)は仕様の正確性をカバーしています。MITライセンスです。