Bot/archive_remote

/archive_remote

外部サーバーのチャンネルをPDFで保存するコマンド

こんなことができます

  • 所属している別サーバーのチャンネル/カテゴリーを、自分のサーバーへPDFとして取り寄せて保存。/archive_remote channel/archive_remote category
  • 引用元サーバー側で「誰に・どこを保存させるか」を細かく設定可能(無効化、保存先ホワイトリスト、カテゴリー許可リスト など)。/archive_remote policy
  • 保存実行時は引用元サーバーの監査ログチャンネルへ通知が飛び、誰が何を持ち出したか記録に残ります。監査ログ
  • 実行ユーザーが閲覧権限を持たないチャンネルは、保存対象から自動除外(情報漏洩防止)。
引用元サーバー (A)

保存される側のサーバー。/archive_remote policy で外部保存を opt-in する必要があります。デフォルトでは保存不可です。

保存先サーバー (B)

PDF を受け取る側のサーバー。/archive_remote channel / category をこのサーバーで実行します。

/archive_remote sources

保存元として利用できる外部サーバーの一覧を表示します。実行ユーザーが所属していて、かつ引用元側でポリシーが有効化されているサーバーだけが表示されます。

基本的な使い方

/archive_remote sources

表示される条件

  • Bot がそのサーバーに参加している。
  • 引用元サーバー側で /archive_remote policy set_mode が「無効化」以外に設定されている。
  • 引用元サーバー側で /archive_remote policy set_audit_channel により監査ログ投稿先が設定されている。
  • 引用元のポリシーで、現在の保存先サーバーが許可されている。
  • 実行ユーザーが引用元サーバーのメンバーである。
  • 引用元サーバー内に、ポリシーと閲覧権限の両条件を満たす保存可能なチャンネルが 1 件以上ある。

/archive_remote categories

選んだ外部サーバーのうち、保存可能なカテゴリーの一覧を表示します。/archive_remote category を実行する前の確認用に使えます。

基本的な使い方

/archive_remote categories source_guild_id: 1234567890123456789

パラメータ

  • source_guild_id(必須) ― 引用元サーバー(オートコンプリート対応)。

出力

  • 引用元サーバーのカテゴリーのうち、ポリシー許可かつ実行ユーザーと Bot の両方が閲覧可能なチャンネルを 1 つ以上含むものを一覧表示します。

/archive_remote channel

外部サーバーの単一チャンネル/スレッドを PDF として、現在のサーバーに保存します。

基本的な使い方

# 引用元サーバーとチャンネルを指定して保存(実行チャンネルへ投稿)
/archive_remote channel source_guild_id: 1234567890123456789 source_channel_id: 9876543210987654321

# 専用スレッドを作ってその中に保存
/archive_remote channel source_guild_id: ... source_channel_id: ... thread_title: 持ち出しログ

パラメータ

  • source_guild_id(必須) ― 引用元サーバー(オートコンプリート対応)。
  • source_channel_id(必須) ― 対象チャンネル/スレッド(引用元サーバー入力後にオートコンプリート、アーカイブ済スレッドは ID 直入力で指定)。
  • output_channel ― 保存先の基準チャンネル(省略時は実行チャンネル)。
  • thread_title ― 指定するとプライベートスレッドを作成し、その中に PDF を保存します。

出力

  • 保存先チャンネル(または作成された非公開スレッド)に PDF が投稿されます。
  • 実行ユーザーには成功件数のみが通知されます(失敗・除外件数は表示されません)。
  • 引用元サーバーの監査ログチャンネルに、実行者・保存先・対象・件数を記録した通知が届きます。

/archive_remote category

外部サーバーのカテゴリー内の全テキストチャンネル(スレッド含む)を一括で PDF 化し、現在のサーバーに保存します。

基本的な使い方

/archive_remote category source_guild_id: 1234567890123456789 source_category_id: 1111222233334444555

# 専用スレッドにまとめて保存
/archive_remote category source_guild_id: ... source_category_id: ... thread_title: シナリオXX保存

パラメータ

  • source_guild_id(必須) ― 引用元サーバー(オートコンプリート対応)。
  • source_category_id(必須) ― 対象カテゴリー(引用元サーバー入力後にオートコンプリート)。
  • output_channel ― 保存先の基準チャンネル(省略時は実行チャンネル)。
  • thread_title ― 指定するとプライベートスレッドを作成し、その中に PDF をまとめます。

保存対象になるチャンネル

  • カテゴリー内のテキストチャンネル、およびその配下のスレッド。
  • 引用元のポリシーで許可されており、かつ実行ユーザーと Bot の両方が閲覧可能なものに限ります。
  • 条件を満たさないチャンネルは保存対象から自動的に除外されます(実行者には件数のみ通知)。

出力

  • 各チャンネル / スレッドが個別の PDF として、保存先(または非公開スレッド)に投稿されます。
  • 完了後、実行ユーザーに成功件数が通知されます。
  • 引用元サーバーの監査ログに実行記録が投稿されます。
カテゴリー内のチャンネル数が多い場合、処理に時間がかかります(数によっては数十分)。

/archive_remote policy

引用元サーバー(保存される側)で行う設定です。デフォルトでは外部サーバーへの保存は不可になっており、このコマンド群で opt-in する必要があります。

使い始めるまでの流れ

  • 引用元サーバー側で /archive_remote policy set_audit_channel を実行し、監査ログ投稿先を指定する。
  • /archive_remote policy set_mode でモードを「無効化」以外に切り替える。
  • 必要に応じて、保存を許可するサーバー(保存先)やカテゴリーを policy allow_destination_guild / policy allow_category で登録する。
  • 保存先サーバー側で /archive_remote channel / category を実行する。

ポリシーのモード

モード 挙動
disabled 外部サーバーによる保存不可(デフォルト)。
destinations_only 指定したサーバー(保存先ホワイトリスト)からのみ保存可能。
allowed_categories 許可リストに登録されたカテゴリーで、かつ実行ユーザーが閲覧可能なチャンネルのみ保存可能。
all_visible 実行ユーザーが閲覧可能なチャンネルなら保存可能(最も寛容)。
どのモードでも、実行ユーザーが閲覧権限を持たないチャンネルは保存対象になりません。また、カテゴリーの「禁止リスト」は許可リストよりも優先されます。

サブコマンド一覧

  • policy status ― 現在のポリシー設定(モード、監査ログ先、許可/禁止カテゴリー、保存先ホワイトリスト)を表示。
  • policy set_mode ― モードを設定(上表の 4 種から選択)。
  • policy set_audit_channel ― 監査ログの投稿先テキストチャンネルを設定。これが未設定だと外部保存は実行できません。
  • policy allow_category ― カテゴリーを許可リストに追加(allowed_categories 用)。
  • policy deny_category ― カテゴリーを禁止リストに追加(許可より優先)。
  • policy allow_destination_guild ― 保存先として許可するサーバー ID を追加(disabled でも事前登録可)。
  • policy remove_destination_guild ― 保存先ホワイトリストから削除。
  • policy remove_category ― カテゴリーを許可/禁止リストから削除(list パラメータで allow / deny / both を指定)。

監査ログの内容

引用元サーバーの監査ログチャンネルには、外部保存が行われるたび以下のような通知が投稿されます。

  • 実行者(ユーザー名と ID)
  • 保存先サーバー(名前と ID)
  • 保存対象(カテゴリーまたはチャンネル名)
  • 成功件数 / 失敗・除外件数

制限事項

/archive_remote はサーバー負荷の大きい処理のため、通常の /archive と同様の制限が適用されます。

権限

  • 保存先サーバーで実行する /archive_remote channel / category / sources / categories、および引用元サーバーで実行する /archive_remote policy 系すべてに、サーバー管理(manage_guild)権限が必要です。
  • 引用元サーバーのポリシーで保存先サーバーや対象カテゴリーが許可されていない場合は実行できません。

利用可能時間

  • 4:00 〜 20:30(JST)に利用できます。20:30 〜 翌 4:00 はコマンドの受付・キュー消化ともにブロックされます。

回数制限とクールダウン

コマンド 1日の上限 サーバー単位 Bot 全体
/archive_remote channel 3 回 1 時間クールダウン 5 分クールダウン
/archive_remote category 1 回 1 時間クールダウン 5 分クールダウン
  • 回数はユーザー単位・サーバー単位それぞれでカウントされ、どちらかが上限に達すると実行できません。
  • 回数は毎日 6:00(JST)にリセットされます。
  • カウントは保存先サーバー側で計上されます(引用元側のクォータは消費しません)。
  • Bot 全体のクールダウンは、他サーバーが直近 5 分以内に /archive_remote 系を実行している場合に順番待ちとなることを意味します。

処理キュー

  • Bot 全体で 単一ワーカー が archive 系タスクを直列に処理するため、同時並行で PDF が生成されることはありません。
  • 処理は順番待ちのキューで管理され、順番が来ると自動的に処理が開始されます(通知あり)。

ファイルサイズ

  • 画像が多い場合、PDFサイズ軽減のため自動圧縮が行われることがあります。
  • 圧縮後もサイズ上限を超える場合は、エラーとなります。