Discord アーカイブBot

目次

コマンド一覧・仕様まとめ

このページでは、
Discord アーカイブBotのコマンド一覧・仕様・制限事項 をまとめています。

note では開発背景や使いどころを紹介していますが、
実際に使う際の正確な情報はこのページを参照してください。


このBotについて

このBotは、Discordサーバ内の

  • カテゴリ
  • チャンネル
  • 紐づくスレッド(チャンネル配下)

をまとめて処理し、スレッドとしてアーカイブ化+一覧生成+ログ保存 を行うBotです。

  • 大量チャンネルでも最後まで処理
  • 途中停止しても再開可能(checkpoint方式)
  • マダミス(マーダーミステリー)用途にも対応(HOごとのログ整理など)

基本コマンド一覧

/archive

カテゴリ内のチャンネルをまとめてアーカイブします。
処理はバックグラウンドで行われ、途中でBotが落ちても /archive_resume で再開できます。

引数

引数名説明
category対象カテゴリ
output_channel出力チャンネル(スレッド作成場所・まとめ出力先)
thread_visibility出力スレッド種別(private=鍵 / public=公開)
thread_modeスレッド一覧の表示方法
members_mode参加メンバー欄の表示方法
include_categoryカテゴリ名をまとめに表示するか

/archive_status

現在実行中のアーカイブの進捗を表示します。

  • 実行中かどうか
  • 処理済みチャンネル数
  • メッセージ転記数
  • 現在の設定内容
  • checkpoint のパス

を確認できます。


/archive_cancel

実行中のアーカイブに 安全なキャンセル要求 を出します。

  • 即時の強制停止ではありません
  • 処理の区切りで安全に停止します(途中破損を避ける設計)

/archive_resume

途中で止まったアーカイブを checkpointから再開 します。

引数

引数名説明
run_id再開したいアーカイブのID

オプション詳細

thread_visibility(出力スレッド種別)

内容
private鍵スレッドで作成(参加者のみ閲覧可能)
public公開スレッドで作成(チャンネル閲覧者なら見える)

thread_mode(スレッド一覧の表示方法)

まとめ内での「配下スレッドリンク」の扱いです。

内容
header親チャンネル直下にスレッド一覧を表示
bottomまとめには表示せず、親スレッド内にのみリンクを残す

members_mode(参加メンバー欄の表示方法)

参加メンバー欄の表示方法です。

内容
bothDiscordまとめ+TXT両方に表示
txtTXTログのみに表示
off表示しない

include_category(カテゴリ名の表示)

カテゴリ名をまとめに表示するかどうか。

内容
on表示する
off表示しない

名前変換(辞書)について

このBotでは、

  • チャンネル名
  • カテゴリ名
  • スレッド名

SQLiteの辞書テーブル で管理しています。

特徴

  • サーバごとに独立した辞書
  • 管理者がコマンドから登録・修正可能
  • 元のチャンネル名は変更しない(表示のみ変換)

サーバ別の表記例

goosegooseduck
  • サーバA→ Goose Goose Duck
  • サーバB→ GooseGooseDuck

マダミス用途での利用例

【1月2日 終末列車はどこへ行く】
【共有】
┗【探偵】
┗【医者】
┗【学生】
┗【新聞記者】
【GM壁打ち】
  • HOごとのログ保存
  • GM専用チャンネルの分離
  • 参加メンバー表示/非表示の切り替え

が可能です。


上限・制限事項

現在のデフォルト設定は以下の通りです。

項目上限
チャンネルあたりの最大転記数1000件
スレッドあたりの最大転記数20件
チャンネルあたりの最大スレッド数20本

※ これらは今後変更される可能性があります。


プライベートスレッドについて

  • アーカイブ出力のスレッドは 公開(public) / 鍵(private) を選択できます(thread_visibility
  • 既定は private(鍵) です
  • private の場合、スレッドは 参加者に追加されたユーザーのみ閲覧可能 です
  • Botは 管理者(1名)を自動で追加します
  • それ以外の参加者を見せたい場合は、Discord側でメンションを行い手動追加してください

あえて完全自動化していない理由

全員を自動で追加すると、運用によっては 通知が大量に飛ぶ追加対象の判断が難しいため

そのためBotは 管理者のみ自動追加し、必要な人だけ手動で追加する運用を推奨しています


注意事項

  • 大量処理のため、実行中は時間がかかる場合があります
  • 実行中にBotが落ちても、再開できます
  • 管理者権限が必要です(/archive /archive_status /archive_cancel /archive_resume)
  • 必ずテストを行ってください。
  • バグが起きないよう色んなパターンで実行しましたが未知のバグが出る可能性があります。

snow-toolコミュニティ作成しました。

バグ報告は下記サーバにてお願いします。

Discord
Discordサーバー「snowtools」に参加しよう! Discordでsnowtoolsコミュニティをチェック! 6人のメンバーと交流し、無料の音声・テキストチャットを楽しみましょう。

BOTダウンロード

最低限の権限をいれたURLです。
プライベートチャンネルやプライベートスレッドは手動でbotをいれる必要があります。

Discord
Discord - Group Chat That’s All Fun & Games Discord is great for playing games and chilling with friends, or even building a worldwide community. Customize your own space to talk, play, and hang out.

管理者権限いれたbot

Discord
Discord - Group Chat That’s All Fun & Games Discord is great for playing games and chilling with friends, or even building a worldwide community. Customize your own space to talk, play, and hang out.

更新履歴

  • 初期公開
  • マダミス用途対応
  • 名前変換辞書をDB化
  • checkpoint再開対応

よくある質問(Q&A)

実行すると「権限不足でスキップ」と表示されます

次を確認してください。

プライベートチャンネル / プライベートスレッドの場合、
Snow Archive がチャンネル(スレッド)に追加されているか確認してください。
Snow Archive が入っていないチャンネルは読み取れません。

Snow Archive のロール権限で、対象チャンネルに
「チャンネルを見る」「メッセージ履歴を読む」 が許可されているか
※カテゴリ/チャンネルの権限上書きで 拒否(×) になっていると読み取れません。

処理に時間がかかっています。止まっているように見えるのですが?

大量チャンネル・大量メッセージを扱うため、正常でも数分〜十数分かかる場合があります
/archive_status(管理者のみ)で、

  • 処理済みチャンネル数
  • メッセージ転記数
  • 現在の設定内容

を確認してください。

実行中にBotが落ちました。やり直しになりますか?

いいえ。
このBotは checkpoint方式 を採用しているため、

  • Bot再起動
  • サーバ再起動
  • 一時的な通信エラー

が発生しても、/archive_resume途中から再開できます。

/archive をもう一度実行しても大丈夫ですか?

同時実行は推奨していません
すでに実行中の場合は、

  • /archive_status で状態確認
  • 必要に応じて /archive_cancel
  • 停止後に /archive_resume

という流れを推奨します。

private(鍵)スレッドが見えません

privateスレッドは 参加者に追加されたユーザーのみ閲覧可能です。

  • Botは 管理者(1名)を自動で追加します
  • それ以外の参加者は 手動でメンション追加してください
  • メンションを大量に飛ばす際は対象者にあらかじめ伝えておいてください。
public(公開)スレッドと private(鍵)スレッドの違いは?

違いは以下の通りです。

種別内容
publicチャンネルを閲覧できる全員がスレッドを閲覧可能
private追加された参加者のみ閲覧可能

情報共有範囲に応じて使い分けてください。

権限エラーが出て実行できません

以下を確認してください。

  • コマンド実行者が 管理者権限を持っているか
  • Botに以下の権限があるか
    • チャンネル閲覧
    • メッセージ履歴の閲覧
    • スレッド作成(public / private)
    • スレッド管理
    • メッセージ送信
メンバー一覧が表示されません

members_mode の設定を確認してください。

  • off → 表示されません
  • txt → TXTログのみ表示(出力後に添付されるファイル)
  • both → Discordまとめ+TXT両方に表示
名前変換が反映されません

辞書は 表示専用です。

  • 元のチャンネル名・スレッド名は変更されません
  • 辞書は サーバごとに独立しています
  • 登録後は Bot再起動不要です
マダミス用途でGM専用ログを分けたいです

以下の構成がおすすめです。

  • HOごとにチャンネルを分ける
  • GM用チャンネル(例:GM壁打ち)をカテゴリ内に含める
  • thread_visibility = private を使用

これにより、HO別ログ+GM専用ログを安全に分離できます。

処理件数の上限を超えた場合はどうなりますか?

上限を超えた分は 自動的にスキップされます。

  • チャンネルあたり最大 1000件
  • スレッドあたり最大 20件
  • チャンネルあたり最大 20スレッド

スキップされた場合でも、処理は継続されます。
1000件以上必要な場合はご相談ください。

通知が大量に飛ぶことはありませんか?

privateスレッドでは、管理者のみを自動追加する設計のため、
不必要な通知が大量に飛ばないようになっています。

ただし、

  • privateスレッドに メンション等でユーザーを追加した場合
  • 管理者および 追加されたメンバー本人

には通知が届きます。

必要なメンバーのみを手動で追加する運用を想定しています。

どんなサーバで使う想定ですか?

以下の用途を想定しています。

  • マダミス・TRPGのログ整理
  • 議事録・会議ログの保存
  • 長期間使われたカテゴリの整理・保管
  • スレッド込みのチャンネル履歴保存
使う前にやっておくべきことは?

以下を強くおすすめします。

  • テスト用カテゴリで動作確認
  • 権限設定の確認
  • private / public の挙動確認
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次