An open API service indexing awesome lists of open source software.

https://github.com/being24/hohumi


https://github.com/being24/hohumi

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

# hohumi

Discord Thread機能の管理を行うためのbotです。
Threadの維持・管理・自動化を行い、サーバーでのスレッド運用を効率化します。

## 主な機能

### 🔧 スレッド管理コマンド

#### `/maintenance_this_thread` (管理者限定)
**説明**: 現在のスレッドを保守対象に設定/解除します
**使用例**: `/maintenance_this_thread tf:True`
- `tf`: True で保守対象に追加、False で解除
- 保守対象のスレッドは自動的にアーカイブ時間が延長されます

#### `/full_maintenance` (管理者限定)
**説明**: サーバー内で今後作成されるすべてのスレッドを自動で保守対象にします
**使用例**: `/full_maintenance tf:True`
- `tf`: True で自動保守を有効、False で無効
- 新規作成されるスレッドが自動的に管理対象になります

#### `/close`
**説明**: 現在のスレッドを即座に閉架(アーカイブ)します
- スレッド名に `[CLOSED]` プレフィックスが付加されます
- DB上の保守対象からも自動的に除外されます

#### `/close_after`
**説明**: 指定した時間後にスレッドを自動閉架するよう設定します
**オプション**:
- `1時間`: 1時間後に自動閉架
- `1日`: 1日後に自動閉架
- `3日`: 3日後に自動閉架
- `1週間`: 1週間後に自動閉架

DB上の保守対象からも自動的に除外されます

### 📝 通知設定コマンド

#### `/resister_notify @role1 @role2 ...` (管理者限定)
**説明**: スレッド作成時に自動参加する役職を設定します
**使用例**: `/resister_notify @スタッフ @モデレーター`
- 複数の役職を指定可能
- 新規スレッド作成時に指定された役職が自動的に参加します

#### `/remove_notify` (管理者限定)
**説明**: 自動参加する役職設定をすべて削除します

#### `/get_notified_role`
**説明**: 現在設定されている自動参加役職を確認します

### 📅 リマインド除外設定コマンド (管理者限定)

#### `/reminder_exclude_channel`
**説明**: このチャンネル下の全スレッドをリマインド対象から除外し、リマインダー期間を設定します
**使用例**: `/reminder_exclude_channel weeks:4`
- `weeks`: リマインドまでの週数(デフォルト: 4週間、0で無効化)
- 指定したチャンネル下の全スレッドに適用されます

#### `/reminder_include_channel`
**説明**: このチャンネルのリマインド除外設定を解除します

#### `/reminder_exclude_thread`
**説明**: 現在のスレッドのリマインド期間を設定します
**使用例**: `/reminder_exclude_thread weeks:6`
- `weeks`: リマインドまでの週数(デフォルト: 4週間、0で無効化)
- 現在のスレッドのみに適用されます

#### `/reminder_include_thread`
**説明**: 現在のスレッドのリマインド除外設定を解除します

#### `/reminder_list`
**説明**: 現在のサーバーでのリマインド除外設定一覧を表示します

### 🔍 管理・確認コマンド (管理者限定)

以下のコマンドは実装済みですが、現在スラッシュコマンドとして登録されていません:

- `archive_extend`: スレッドのアーカイブ時間を手動で延長
- `get_archive_time`: スレッドの推定アーカイブ時刻を表示
- `check_archive_time`: サーバー内の管理対象スレッドのアーカイブ時刻一覧を表示
- `add_staff`: 現在のスレッドにスタッフを参加させる
- `read_staff`: 既存スレッドに新スタッフを一括追加

## 🤖 自動機能

### スレッド作成時の自動処理
- **自動参加**: botが新規作成されたスレッドに自動参加
- **スタッフ招待**: 設定された役職を自動的にスレッドに招待
- **低速モード継承**: 親チャンネルの低速モード設定を引き継ぎ
- **フォーラムタグ**: フォーラムチャンネルで「未解決」「対応待ち」タグを自動付与
- **保守対象登録**: full_maintenanceが有効な場合、自動的に保守対象に追加

### 定期監視機能 (15分間隔)
- **アーカイブ時間延長**: 期限が近いスレッドの自動延長
- **非アクティブ通知**: 2週間非アクティブなスレッドへのリマインド送信
- **データベース整合性**: 削除されたスレッドのDB情報クリーンアップ

### スレッド更新時の自動処理
- **名前変更通知**: スレッド名が変更された際の自動通知
- **ロック状態通知**: スレッドがロック/ロック解除された際の通知
- **アーカイブ通知**: 監査ログから実行者を特定してアーカイブ通知
- **CLOSEDプレフィックス管理**: アーカイブ解除時の自動プレフィックス削除

## 📊 データベース管理

- **SQLite データベース**: スレッド管理情報、ギルド設定、通知役職設定を保存
- **自動バックアップ**: 毎日午前4時に自動バックアップを実行
- **データ整合性**: 削除されたスレッド/ギルドの情報を自動クリーンアップ

## 🚀 使用方法

1. Bot をサーバーに招待
2. `/full_maintenance tf:True` でサーバー全体の自動保守を有効化
3. `/resister_notify @役職名` でスタッフの自動参加を設定
4. 個別のスレッドには `/maintenance_this_thread` で手動設定も可能

Bot は招待されたサーバーでスレッド管理を自動化し、アーカイブによるスレッドの消失を防ぎます。