/archive
テキストチャンネルの会話をPDFとして保存するコマンド
こんなことができます
- テキストチャンネルやスレッドの会話を、Discord 風レイアウトの PDF として保存。/archive channel
- カテゴリー内のテキストチャンネルを、配下スレッドも含めて一括 PDF 化。/archive category
- マダミナリンクのアーカイブ投稿から、リンク先の各スレッドを通常メッセージ風 PDF に一括変換。/archive madamina
- 出力先として非公開スレッドを作ってまとめたり、PDF / YouTube リンクを通常リンクのまま残したりするオプションあり。thread_titlekeep_links
/archive channel
テキストチャンネルまたはスレッドの会話をPDFとして保存します。
基本的な使い方
# 現在のチャンネルをPDF化
/archive channel
# 別のチャンネルやスレッドを指定してPDF化
/archive channel channel: #雑談
# リンクをそのまま残してPDF化
/archive channel channel: #雑談 keep_links: True
/archive channel
# 別のチャンネルやスレッドを指定してPDF化
/archive channel channel: #雑談
# リンクをそのまま残してPDF化
/archive channel channel: #雑談 keep_links: True
パラメータ
- channel ― 対象のテキストチャンネルまたはスレッド。省略時は実行チャンネル。
- keep_links(既定
False) ―Trueにすると、PDF / YouTube リンクを通常リンクとして残します(既定では添付プレビューに置き換えます)。
出力
- 実行チャンネルにPDFファイルが投稿されます。
- ファイル名はチャンネル名(スレッドの場合は
親チャンネル › スレッド名.pdf)になります。ファイル名に/ : * ? " < > |が含まれる場合は_に置き換えられます。 - メッセージの内容・画像・タイムスタンプがDiscord風のレイアウトでPDF化されます。
/archive category
カテゴリ内の全テキストチャンネル(既定でスレッド含む)を一括でPDF化します。
基本的な使い方
/archive category category: カテゴリー名
# スレッドを含めず、テキストチャンネルだけPDF化
/archive category category: カテゴリー名 include_threads: False
# スレッドを含めず、テキストチャンネルだけPDF化
/archive category category: カテゴリー名 include_threads: False
パラメータ
- category(必須) ― 対象カテゴリ。
- target_thread_parent ― 出力先スレッドの親チャンネル(省略時は実行チャンネル)。
- thread_title ― 指定すると、出力先として非公開スレッドを作成し、その中にPDFをまとめます。
- include_threads(既定
True) ― 各テキストチャンネル配下のスレッドも対象に含めます。Falseにするとテキストチャンネル本体のみが対象になります。 - keep_links(既定
False) ―Trueにすると、PDF / YouTube リンクを通常リンクとして残します。
出力
- カテゴリ内の各テキストチャンネルと、その配下のスレッド(include_threads が
Trueのとき)がそれぞれ個別のPDFとして投稿されます。 - thread_title を指定した場合、非公開スレッドが作られ、その中にすべてのPDFがまとめて投稿されます。
- 完了後、成功・失敗件数のサマリーが表示されます。
カテゴリ内のチャンネル数が多い場合、処理に時間がかかります。(数によっては数十分)
非公開スレッド(thread_title)の作成に失敗した場合、誤って実行チャンネルに大量のPDFが投稿されるのを防ぐため、フォールバックせずエラーで中断します。
/archive madamina
マダミナリンクのアーカイブ投稿から、リンク先の各スレッドを 通常メッセージ風の PDF に変換して保存します。
基本的な使い方
# 実行チャンネルに各スレッドのPDFを投稿
/archive madamina message_url: https://discord.com/channels/.../...
# 専用の非公開スレッドにまとめて投稿
/archive madamina message_url: ... thread_title: アーカイブ保存
/archive madamina message_url: https://discord.com/channels/.../...
# 専用の非公開スレッドにまとめて投稿
/archive madamina message_url: ... thread_title: アーカイブ保存
パラメータ
- message_url(必須) ― マダミナリンク Bot が投稿した index post(スレッド一覧 embed)のメッセージ URL。
- target_thread_parent ― 出力先スレッドの親チャンネル(省略時は実行チャンネル)。
- thread_title ― 指定すると、出力先として非公開スレッドを作成し、その中にPDFをまとめます。
- include_index(既定
False) ―Trueにすると、index post 本文を出力先の冒頭にも転載します。 - keep_links(既定
False) ―Trueにすると、PDF / YouTube リンクを通常リンクとして残します。
出力
- index post から辿られる各スレッドが、それぞれ個別のPDFとして投稿されます。
- マダミナリンク Bot の embed は、本来の投稿者のアバター・名前付きの通常メッセージとして展開されます。同じ投稿者の連投はグループ化されて表示されます。
- アバターは、対象サーバーのメンバーであれば現在のアバター画像、そうでなければ HEAD リクエストで生存確認できた候補、最終的に Discord デフォルトアバター(0〜5)にフォールバックします。
共通の挙動
すべての /archive 系コマンドに共通する挙動です。
完了通知の表示
- 「○○さんが /archive を利用しました」を含む完了通知は、実行者本人にのみ表示される ephemeral メッセージとして送信されます。他のメンバーには見えません。
- 長時間処理で Discord interaction(15 分)が失効した場合は、実行チャンネルに通常のメッセージとして完了通知をフォールバック投稿します。
ファイル名のサニタイズ
- 出力ファイル名に
/ : * ? " < > |が含まれる場合、安全のため_に置き換えられます。
スレッドへの自動参加
- /archive channel でスレッドを直接指定した場合、/archive category で include_threads が
True(既定)のときに収集される配下スレッド、および /archive madamina で参照される各スレッドについて、Bot が未参加なら自動で参加します。
制限事項
archiveコマンドはサーバー負荷が大きいため、以下の制限があります。
権限
- 管理者権限が必要です。
利用可能時間
- 4:00 〜 20:30(JST)に利用できます。20:30 〜 翌 4:00 はコマンドの受付・キュー消化ともにブロックされます。
クールダウン
- 1 日あたりの回数制限はありません。
- 各コマンドごとに、サーバー単位で 5 分 のクールダウンがあります(/archive channel / category / madamina はそれぞれ独立してカウント)。
- 同一サーバーで同じコマンドを 5 分以内に連続実行した場合は、キュー投入前に「クールタイム中」として受付されません。
処理キューと連続実行制御
- 受付された処理は順番待ちのキューに入り、順番が来ると自動的に処理が開始されます(通知あり)。
- Bot 全体で 単一ワーカー が archive 系タスクを直列に処理します。同時並行で PDF が生成されることは構造的に発生しません。
- 非 remote の archive タスク(channel / category / madamina)が連続するときは、ワーカーが各タスクの間に最低 60 秒 の間隔を取り、負荷を平準化します。
ファイルサイズ
- 画像が多い場合、PDFサイズ軽減のため自動圧縮が行われることがあります。
- 圧縮後もサイズ上限を超える場合は、エラーとなります。