最寄り駅まで行って 電車が出んしゃ! となることを防ぐためのWebサービスです.
- 電車の運行情報を取得し、最寄り駅に接近中の電車をWeb UIで案内します.
- 現状はJR西日本管内に対応しています.(JR京都線で動作確認しました.)
- 阪急は対応予定です.
- 上り・下りそれぞれ直近3本の電車について,発車時刻・種別・行先・遅延・到着までの目安時間や「間に合う/間に合わない」などを表示します.
- ページは30秒ごとに自動更新され,リアルタイムの運行情報が確認できます.
- Ubuntu22.04
- Python3
- flask
- beautifulsoup
- pyyaml
- tqdm
-
依存パッケージのインストール
pip install flask pyyaml beautifulsoup4 tqdm
またはuvでの設定も可能です.
uv sync
-
設定
- params.yaml に情報を取得したい路線名,最寄り駅名,時刻表のURLなど)を記入してください。JR京都線 高槻駅の場合は以下のとおりです.
request_line: '京都' request_line_en: 'kyoto' request_station: '高槻' request_station_en: 'takatsuki' schedule_url: ['JRおでかけネット上の駅時刻表URL(上り)', 'JRおでかけネット上の駅時刻表URL(下り)'] danger_minutes: 5 #「間に合わない」表示に切り替わる時間(分) warning_minutes: 10 #「走れば間に合う」表示に切り替える時間(分)
- 時刻表データの取得
setup_app.pyを実行して,最寄り駅の時刻表データを取得してschedule_json/以下に格納します.python setup_app.py # uvの場合 uv run setup_app.py
- Webアプリの起動
python app.py # uvの場合 uv run app.py
- 実行後,ブラウザで
http://localhost:5000にアクセスしてください。
本サービスをマシン起動と同時に自動起動するようにしたい場合,systemctlコマンドを利用して,システム起動直後にプログラムが起動するようにしてください.
systemctlを利用するためには,/etc/systemd/systemディレクトリに,traininfo.serviceを作成してください.
以下はhogeユーザーのDesktopに本リポジトリをクローンし,uvでプロジェクトをセットアップした場合のtraininfo.serviceの例です.
[Unit]
Description=train info flask app Service
After=network.target
[Service]
Type=simple
User=hoge
Group=hoge
WorkingDirectory=/home/hoge/Desktop/current-train-info-bot
Environment="PATH=/home/hoge/.local/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/hoge/.local/bin/uv run app.py
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
- slackのbotとしてリクエストを受けたらお知らせする機能
- 阪急の運行情報を取得してお知らせできるようにする