Skip to content

htm2323/current-train-info-bot

Repository files navigation

列車運行情報お知らせbot

最寄り駅まで行って 電車が出んしゃ! となることを防ぐためのWebサービスです.

概要

  • 電車の運行情報を取得し、最寄り駅に接近中の電車をWeb UIで案内します.
    • 現状はJR西日本管内に対応しています.(JR京都線で動作確認しました.)
    • 阪急は対応予定です.
  • 上り・下りそれぞれ直近3本の電車について,発車時刻・種別・行先・遅延・到着までの目安時間や「間に合う/間に合わない」などを表示します.
  • ページは30秒ごとに自動更新され,リアルタイムの運行情報が確認できます.

要件

  • Ubuntu22.04
  • Python3
  • flask
  • beautifulsoup
  • pyyaml
  • tqdm

使用方法

  1. 依存パッケージのインストール

    pip install flask pyyaml beautifulsoup4 tqdm

    またはuvでの設定も可能です.

    uv sync
  2. 設定

  • 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  #「走れば間に合う」表示に切り替える時間(分)
    
  1. 時刻表データの取得
  • setup_app.py を実行して,最寄り駅の時刻表データを取得してschedule_json/以下に格納します.
    python setup_app.py
    
    # uvの場合
    uv run setup_app.py
    
  1. 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としてリクエストを受けたらお知らせする機能
  • 阪急の運行情報を取得してお知らせできるようにする

About

電車の運行情報を取得し,最寄り駅に接近中の電車をWeb UIで案内するPythonプログラム

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors