スキーレースシーズンにはいりましたので、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モードあります。
命令キー | 動作 |
s | SEIKOSPORTSLINKの欲しいページを表示させて、ENTERするとスカルプしてcsvファイルの保存してくれる |
a | SlackにURLが投稿されるとそのURLをよみとって、そのデータをスカル王して、FISポイント計算をして、ポイント順位表をHTMLにしてサーバーにアップロードして、SlackにHTMLのURLを返します。 |
t | 上記aキーをタイマーをつかって繰り返し実行します。 Slackに投稿されたURLが異なったら、スカルプして、計算してアップロードします。 |
●SLACKの設定
ユーザー用にshinshumakersで管理しているFPES ワークスペース内の#web-serviceチャンネルをつかいます。
ここをプログラムでAPIを使った自動読み取り、書き込みをおこなってます。
使っているURLとIDは公開できませんが
の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