セパレート機能設定例¶
機能概要¶
セパレート機能は サマリ生成 などで集計するデータを チャンネル識別子 で区別する設定となる。
データに記録されるゲーム結果には「 成績記録キーワード 」が発行されたチャンネル固有の チャンネル識別子 が保存され、「どこから入力されたデータか」を区別できるようになっている。
チャンネル識別子のフォーマット¶
チャンネル識別子 のデフォルトフォーマットは、連携先サービス名のプレフィックスを持ち、そのサービス内で用いられる channel_id などのチャンネルを識別するためのIDが続く形をとる。
<サービス名>_<サービス内で使われるチャンネルID>
channel_id を定義することで自由に変更できる。集計データ抽出ルール¶
ルールセット 単位となり、「 ルール識別子 」が抽出条件として指定されている。ルールセット を使うかが定義されている。ルールセット を使用していれば、Discordで入力された成績データをSlackで参照できる。セパレート機能を有効にした場合、データの抽出条件に チャンネル識別子 が追加され、集計コマンドを発行したチャンネルの チャンネル識別子 を持つデータだけが集計対象となる。
付与される チャンネル識別子 は「 ヘルプ出力 」機能で内容を確認できる。
セパレート機能設定箇所¶
separate キーを True にセットすれば有効になる。settingセクション
各サービスのセクション
チャンネル個別設定
設定箇所による有効範囲は以下のようになる。
[setting]
separate = True
メイン設定のセパレート機能有効化は、全サービス、全チャンネルのデータを分けて集計するようになる。
Slack / Discord で入力されたデータを区別
各サービス内の各チャンネルで入力されたデータを区別
[slack]
separate = True
[discord]
separate = True
ルールセット の記録でもSlackで実行した集計コマンドの結果にDiscordから登録されたデータは含まれない。該当サービスのすべてチャンネルでセパレート機能が有効になる。
Note
利用シーンとしては以下のようなものが考えられる。
アプリケーションを複数立ち上げ、同じDBを参照させている - Slack + Web など
チャンネル単位で
channel_idを設定してグループを作っており、チャンネル個別設定でセパレートせずにサービス設定でまとめてセパレートしているなど
[slack_Cxxxxxxxxxx]
separate = True
[discord_xxxxxxxxxxxxxxxxxxx]
separate = True
チャンネル個別設定で使用するセクション名は「<サービス名>_<サービス内で使われるチャンネルID> 」となる(変更不可)。
チャンネルAで有効、チャンネルBは無効とし、同じ ルールセット の記録を集計する場合は以下のように集計される。
- チャンネルA
集計コマンドの抽出条件に チャンネル識別子 が追加される
チャンネルAで入力されたデータ:集計対象
チャンネルBで入力されたデータ:集計対象外
- チャンネルB
集計コマンドの抽出条件は ルール識別子 のみ
チャンネルAで入力されたデータ:集計対象
チャンネルBで入力されたデータ:集計対象
チャンネル設定情報¶
【チャンネル設定情報】
チャンネル識別子:slack_Cxxxxxxxxxx
チャンネル個別設定:---
セパレート:有効
データベースファイル:mahjong.db
【チャンネル設定情報】
チャンネル識別子:discord_xxxxxxxxxxxxxxxxxxx
チャンネル個別設定:---
セパレート:有効
データベースファイル:mahjong.db
設定例¶
グループ化設定例¶
共通する チャンネル識別子 設定することで集計範囲をコントロールできる。
- サービス単位でグループ化
連携先のサービスからの成績登録はそのサービスの全チャンネルで利用するが、サービスを跨いで集計しない。
メイン設定¶[setting] separate = True [slack] channel_id = slack_data [discord] channel_id = discord_data
Slackで扱う チャンネル識別子 が全チャンネルで「slack_data」となる。Discordも同様。セパレート機能が有効なので各サービスの記録は分けて集計される。- チャンネル単位でグループ化
3つのチャンネルのうち、1つのチャンネルだけ別集計にする。
メイン設定¶[slack] separate = True [slack_Cxxxxxxxxx1] # チャンネルAの設定 channel_id = slack_data1 [slack_Cxxxxxxxxx2] # チャンネルBの設定 channel_id = slack_data1 [slack_Cxxxxxxxxx3] # チャンネルCの設定 channel_id = slack_data2
チャンネルAとチャンネルBの集計結果にはチャンネルCの記録は含まれない。チャンネルCの集計結果はチャンネルCだけの記録で集計される。
その他の設定例¶
- Slackワークスペースの変更
旧ワークスペースで記録された チャンネル識別子 を新ワークスペースに引き継ぐ。
メイン設定¶[slack_CxxxxxxxNEW] # 新ワークスペースのチャンネルID # 旧ワークスペースで使用していた *チャンネル識別子* を設定する channel_id = slack_CxxxxxxxOLD
セパレート機能を使わない場合は チャンネル識別子 の変更の必要性はない。後にセパレート機能を有効にする可能性を考慮し、新旧で チャンネル識別子 を合わせておくとよい。Warning
チャンネル識別子 の変更を行わない場合、セパレート機能を有効にすると旧ワークスペースのデータが集計の対象から外れることになる。
