EPGStation の通知を Slack に送るコマンドラインツール
Releases から OS とアーキテクチャに合ったバイナリをダウンロード。
Linux / macOS の amd64 / arm64 / armv7 のみビルドしているのでそれ以外の環境では自分でビルドする。
メッセージの投稿に API Token を使うので準備する。 詳しくは Slack のドキュメントを参照。
作成した API Token は設定ファイルに書き込むので控えておく。
投稿するチャンネルをチャンネル ID で指定するので確認して控えておく。
epgstation-slack-config.example.yml ファイルを epgstation-slack-config.yml へコピーして Slack の API キーとチャンネル名を書き込む。
設定ファイルはデフォルトではバイナリと同じディレクトリに配置した epgstation-slack-config.yml ファイルを利用し,オプションで指定された場合はオプションの値が優先される。
$ wget -O epgstation-slack-config.yml https://raw.githubusercontent.com/hiroxto/epgstation-slack-notification/master/epgstation-slack-config.example.ymlデフォルト以外の場所に配置した設定ファイルを利用する場合は --config, -c オプションを利用する。
$ ./epgstation-slack-notification --config /path/to/config.yml reserve-new-additionEPGStation の config/config.yml にコマンドをセットする。
# 録画予約の新規追加時に実行されるコマンド
reserveNewAddtionCommand: "/path/to/epgstation-slack-notification reserve-new-addition"
# 録画情報の更新時に実行されるコマンド
reserveUpdateCommand: "/path/to/epgstation-slack-notification reserve-update"
# 録画予約の削除時に実行されるコマンド
reservedeletedCommand: "/path/to/epgstation-slack-notification reserve-deleted"
# 録画準備の開始時に実行されるコマンド
recordingPreStartCommand: "/path/to/epgstation-slack-notification recording-pre-start"
# 録画準備の失敗時に実行されるコマンド
recordingPrepRecFailedCommand: "/path/to/epgstation-slack-notification recording-prep-rec-failed"
# 録画開始時に実行するコマンド
recordingStartCommand: "/path/to/epgstation-slack-notification recording-start"
# 録画終了時に実行するコマンド
recordingFinishCommand: "/path/to/epgstation-slack-notification recording-finish"
# 録画中のエラー発生時に実行するコマンド
recordingFailedCommand: "/path/to/epgstation-slack-notification recording-failed"
# エンコード終了時に実行するコマンド
encodingFinishCommand: "/path/to/epgstation-slack-notification encoding-finish"EPGStation v1 を使っている場合はconfig/config.jsonにコマンドをセットする。
{
"reservationAddedCommand": "/path/to/epgstation-slack-notification reservation-added",
"recordedPreStartCommand": "/path/to/epgstation-slack-notification recorded-pre-start",
"recordedPrepRecFailedCommand": "/path/to/epgstation-slack-notification recorded-prep-rec-failed",
"recordedStartCommand": "/path/to/epgstation-slack-notification recorded-start",
"recordedEndCommand": "/path/to/epgstation-slack-notification recorded-end",
"recordedFailedCommand": "/path/to/epgstation-slack-notification recorded-failed"
}設定をした後, EPGStation を再起動する。
$ pm2 restart epgstation通知設定の message と template は Go の text/template を使って任意の内容を出力できる。
テンプレートに渡されるデータの構造と中身は dump:detail コマンドを使って確認可能。
渡されるデータはコマンド毎に分かれていて以下のように使い分けされる。
ReserveDetailを使うコマンドreserve-new-additionreserve-updatereserve-deletedrecording-pre-startrecording-prep-rec-failed
RecordingDetailを使うコマンドrecording-startrecording-finishrecording-failed
EncodingDetailを使うコマンドencoding-finish
データは基本的に EPGStation のドキュメント通りの環境変数の値が入る。
EPGStation から渡される環境変数に加えて一部独自の値も持っている。
StartAtTime- 環境変数
STARTATをtime.Time型に変換した値
- 環境変数
EndAtTime- 環境変数
ENDATをtime.Time型に変換した値
- 環境変数
DurationMin- 環境変数
DURATIONを分単位のint64型に変換した値
- 環境変数
設定内容を確認する時は dump:config コマンドを利用する。
環境変数の内容を確認する時は dump:env コマンドを利用する。



