アーカイブ君 #6554の使い方

# はじめに

はじめましての方ははじめまして。
本BOT「アーカイブ君」の制作者、**むらひと**と申します。

私はTRPG、マーダーミステリー、ストーリープレイングを趣味としており、最近はDiscord上で遊ぶことが多いです。これらの界隈では、プレイ中の感情やメモなどをチャンネルに書き込む「壁打ち」という行為がよく行われます。

私も例に漏れず壁打ちを行うのですが、プレイ後もそれらの記録を確認できるよう、「アーカイブ」という形で保存しています。アーカイブについては、[マダミナリンク](https://x.com/Madaminalink)の機能が非常に便利で、いつもお世話になっています。

しかし、界隈で活動しているうちに、こう思うようになりました。

「アーカイブは便利だけど、参加するサーバーが増えてきたし……別のサーバーにアーカイブを保存できればいいのに」

そこで、このBOTを開発しました。このBOTが、皆様のサーバー整理に少しでも役立てば幸いです。


## このBOTでできること

- **アーカイブの整理:** カテゴリーチャンネルごとにアーカイブを作成することができます。
- **異なるサーバー間でのアーカイブの保存:** 複数のサーバーで活動している場合でも、アーカイブを一箇所に集約できます。
- **既存アーカイブの複製:** 本BOTやマダミナリンクで作成した既存のアーカイブも複製・管理できます。
- **サーバー管理者による権限管理:** サーバーメンバーがサーバー内にアーカイブを作成できるかどうかを管理できます。
- **ユーザーと同等の権限でコマンドを実行:** このBOTは管理者権限で動作しますが、アーカイブ機能はコマンドを実行したユーザーが閲覧可能なチャンネルのみを対象とするため、ご安心ください。

:::note info
閲覧可能なチャンネルとは、コマンドを実行したユーザーが対象のチャンネルに対して以下の権限をすべて保持しているチャンネルを指します。

- 「チャンネルを見る」権限
- 「メッセージを読む」権限
- 「メッセージ履歴を読む」権限
:::
:::note warn
長期間活動の無いスレッドはアーカイブできない場合があります。Discord APIによる仕様です。
:::

# 導入

## 導入リンク
https://discord.com/oauth2/authorize?client_id=1248774395628093460

:::note warn
※ 2025年2月23日時点でサーバー導入数が100に達しました！これ以上の導入にはDiscordからのBOTの認証が必要となるので申請処理中です。導入出来ない方はしばらくお待ち下さい。
:::

## 利用規約
https://murahito130.github.io/ConnectArchivesTerms/

## プライバシーポリシー
https://murahito130.github.io/ConnectArchivesPrivacyPolicy/

# 基本的な使い方
本BOTをアーカイブを保存したい（管理者権限のある）サーバーと、保存対象のカテゴリーチャンネルまたはアーカイブが存在するサーバーに導入してください。アーカイブまたはアーカイブの複製を実行すると、処理がBOTに予約されます。アーカイブ完了までには時間がかかる場合がありますので、アーカイブが出力されるまで対象のチャンネルまたは複製元のアーカイブを削除しないようにご注意ください。

## アーカイブの保存先を設定
```
/set_archive_destination
```
実行にはサーバーの管理者権限が必要です。
このBOTがアーカイブを保存する先のカテゴリーチャンネルを設定します。アーカイブを保存したいサーバーで実行してください。
- `category_channel`: [Option] 既存のカテゴリーチャンネルを指定します。指定しない場合は、「Archives」というカテゴリーチャンネルを新規作成し、そのチャンネルを保存先として設定します。

## カテゴリーを保存
```
/archive_category
```
保存したいカテゴリーチャンネルがあるサーバーで実行してください。指定したカテゴリーチャンネルを`/set_archive_destination`で指定したカテゴリーチャンネル内のテキストチャンネルに保存します。
- `アーカイブするカテゴリーチャンネル`: アーカイブしたいカテゴリーチャンネルを選択します。
- `保存先のチャンネル`: アーカイブの保存先のチャンネルを選択します。`/set_archive_destination`で指定したカテゴリーチャンネル内のテキストチャンネルを選択してください。存在しないチャンネル名を指定すると、新規にテキストチャンネルが作成されます。
- `タイトルを指定する`: [Option] アーカイブのタイトルを指定します。指定しない場合は、保存するアーカイブチャンネルの名前が使用されます。

## アーカイブを複製
```
/clone_archive_message
```
本BOTで作成されたアーカイブ、もしくは[マダミナリンク](https://x.com/Madaminalink)で作成されたアーカイブの複製ができます。このコマンドは既存のスレッドを新たに複製するため、複製元のアーカイブが削除されても複製されたアーカイブは保持されます。
 - `メッセージのurl:` アーカイブされたメッセージのURLを指定します。
 - `保存先のチャンネル:` アーカイブの保存先のチャンネルを選択します。`/set_archive_destination`で指定したカテゴリーチャンネル内のテキストチャンネルを選択してください。存在しないチャンネル名を指定すると、新規にテキストチャンネルが作成されます。
 - `タイトルを指定する:` [Option] アーカイブのタイトルを指定します。指定しない場合は、メッセージのurlで指定したアーカイブのタイトルが使用されます。

アーカイブされたメッセージのURLは↓の画像のようにPC版ならメッセージを右クリック、スマートフォン版ならメッセージを長押し後のメニューから「メッセージリンクをコピー」で取得できます。
 ![GkeJ3VRWQAAI9ET.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715583/0b374704-94ff-4203-9fd8-bd81223f6956.png)

 ## アーカイブのタイトルを変更
 ↓の画像のようにPC版ならメッセージを右クリック、スマートフォン版ならメッセージを長押し後のメニューからアプリの「アーカイブメッセージ」を押すことで、本BOTが作成したアーカイブのタイトルを編集できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715583/ecd13b24-6dfd-40fe-b9ca-83ffdd3738c0.png)
↓変更後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715583/54b51dae-f487-4672-9174-43cdfa0e448e.png)


# サーバー(Guild)単位で管理するコマンド

サーバーの管理者は、サーバー内でメンバーが特定のチャンネルにアーカイブを保存することを許可することができます。
サーバーの管理者が許可しない場合、メンバーは以下のコマンド（以下、ギルドコマンド）を実行することはできません。

## サーバーの管理者がアーカイブの保存先として許可をするチャンネルを追加
```
/guild admin add_archive_destination
```
実行にはサーバーの管理者権限か、サーバー管理者の許可が必要です。
- `text_channel:` テキストチャンネルを選択します。

## サーバーの管理者がアーカイブの保存先として許可されたチャンネルの許可を取り消す
```
/guild admin revoke_archive_destination
```
実行にはサーバーの管理者権限か、サーバー管理者の許可が必要です。
- `text_channel:` テキストチャンネルを選択します。

## サーバーの管理者がメンバーに対してギルドコマンドに関しての権限を付与する
```
/guild admin set_user_permission
```
実行にはサーバーの管理者権限か、サーバー管理者の許可が必要です。
- `user:` 対象のメンバーを選択します。
- `permission:` 「admin」「user」「deny」のいずれかを選択します。
  - `admin`: ギルドコマンドにおいてサーバーの管理者と同等の権限を与えます。
  - `user`: 一般的なメンバーに最初から与えられた権限で、ギルドコマンドの実行権限を有します。
  - `deny`: ギルドコマンドの実行権限を剥奪します。

## メンバーが使用するギルドコマンド
```
/guild archive_category
```
サーバー管理者が許可したサーバー内のテキストチャンネルに、サーバーのカテゴリーチャンネルのアーカイブを保存できます。
基本的な動作は[`/archive_category`](https://qiita.com/murahito/items/127da46d03a510f98bca#%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%82%92%E4%BF%9D%E5%AD%98)と同様です。
- `アーカイブするカテゴリーチャンネル:` アーカイブしたいカテゴリーチャンネルを選択します。
- `保存先のチャンネル:` アーカイブの保存先のチャンネルを選択します。`/guild admin add_archive_destination` でサーバーの管理者に許可されたテキストチャンネルを指定します。
- `タイトルを指定する`: [オプション] アーカイブのタイトルを指定します。指定しない場合は、保存先のアーカイブチャンネルの名前が使用されます。


# バグ報告や質問について
何かあれば私のXアカウントまでご連絡ください。
※電話番号が登録されていないアカウントからの通知をミュートにしているのでお気をつけください

https://x.com/murahito130