【Python】FISポイント見積システム再稼働<稼働備忘録>

スキーレースシーズンにはいりましたので、5か月振りで、FISポイント見積理システムを再稼働させました。

 

●5か月前のプログラムがエラーで止まる

違い1:FISポイントリストが新シーズンになったので更新しなければならない
更新時にFISからのスカルプがエラー発生

 https://www.fis-ski.com/DB/alpine-skiing/fis-points-lists.html

赤枠のフォーマットが2024年シーズンと2025年シーズンで違っていて、エラーがでていたので修正した

違い2:FISポイント計算に必要なファイルは3個あって、それらが最新に更新されてないといけません。
更新ファイルは、プログラムで加工しますが、加工後に3個のファイル名をTXTファイルの保存して参照させます。
  set_idf-ptf-base24.txt というファイルに3個のファイル名を格納

それぞれのファイル名は下記に更新

C:\FIS\SAJ_Biography\SAJ_Biography_List_2024-12-23-18-16_.csv,

C:\FIS\FIS-points-list-AL/FIS_FileSet_2024-12-23-20-45.csv,

C:\FIS\FIS-points-list-AL/Base-FIS-points-list-AL-2025-.csv,

違い3:上記ファイルの作成
①SAJのサイトにBiographyがあって、SAJ登録選手のFIS ID とSAJ番号がリストされている

https://sajdb.shikuminet.jp/alpine/biography

ここをスカルプします。プログラムの操作コマンドjキー押しです。
SAJ_Biographyフォルダーにファイルを収納されます。

②FIS pointlistのファイル名のリストを作成します。

https://www.fis-ski.com/DB/alpine-skiing/fis-points-lists.html

ここをスカルプします。プログラムの操作コマンドpキー押しです。
FIS-points-list-AL フォルダーにFileSetというファイルを作成します。

中身はこれです。 レースの日付がstart_dateとlast_dateの間に入るファイルを計算資料とします。

 

③Baseファイルは、つかってませんが、ダウンロードしてFIS-points-list-AL フォルダーに収納

 

●動作
プログラムの動作は3モードあります。

命令キー 動作
SEIKOSPORTSLINKの欲しいページを表示させて、ENTERするとスカルプしてcsvファイルの保存してくれる
a SlackにURLが投稿されるとそのURLをよみとって、そのデータをスカル王して、FISポイント計算をして、ポイント順位表をHTMLにしてサーバーにアップロードして、SlackにHTMLのURLを返します。
t 上記aキーをタイマーをつかって繰り返し実行します。
Slackに投稿されたURLが異なったら、スカルプして、計算してアップロードします。

●SLACKの設定

ユーザー用にshinshumakersで管理しているFPES ワークスペース内の#web-serviceチャンネルをつかいます。
ここをプログラムでAPIを使った自動読み取り、書き込みをおこなってます。
使っているURLとIDは公開できませんが

WEB_HOOK_FP=”https://hooks.slack.com/services/xxxxxxxxx”
TOKEN_FP= “xoxb-yyyyyyyyyyyyyyyy” # FPtokenを入れてください
CHN_FP=”zzzzzzzz”#FP web-service

の3個を定数として書き込んでおきます。

 

●結果のアップロード

短縮URLです。
https://tinyurl.com/28xwkv2f

 https://issb.lsv.jp/Test_+_df_result_df_SEIKO_20241223%E7%AC%AC%EF%BC%93%EF%BC%97%E5%9B%9E%E3%82%B4%E3%83%BC%E3%83%AB%E3%83%89%E3%82%A6%E3%82%A4%E3%83%B3%E3%82%AB%E3%83%83%E3%83%97%E9%98%BF%E5%AF%92%E3%82%B9%E3%83%A9%E3%83%AD%E3%83%BC%E3%83%A0%E5%A4%A7%E4%BC%9A_S.html

●プログラム
GISTにアップしてあります。

https://gist.github.com/dj1711572002/1cbcf9693fbc23691fd188b00de8d291

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です