Discord Bot 課題提出通知
1. 目的
課題提出の期限をDiscordの特定のチャンネルで通知するBotを作成し、学生やメンバーに課題提出のリマインドを行う。
2. 主要機能
2.1 課題登録機能
- コマンド: `!add_assignment`
- 入力:
- 動作:
- 課題情報をデータベースに保存。
- 期限日と詳細を指定のチャンネルに確認メッセージを投稿。
2.2 課題リスト表示機能
- コマンド: `!list_assignments`
- 動作:
- 登録されているすべての課題を表示。
- 各課題の提出期限と詳細を含む。
2.3 課題削除機能
- コマンド: `!remove_assignment`
- 入力: 課題IDまたは課題名
- 動作:
- 指定された課題をデータベースから削除。
- 削除成功メッセージを指定のチャンネルに投稿。
2.4 課題リマインド機能
- 動作:
- 提出期限の24時間前および1時間前にリマインドメッセージを指定のチャンネルに投稿。
3. 使用技術
- プログラミング言語: Python
- Discord APIライブラリ: discord.py
- データベース: SQLite(小規模)またはPostgreSQL(大規模)
4. ユーザーインターフェース
- コマンドラインインターフェース: Discordのテキストチャットでコマンドを入力
- メッセージフォーマット: 埋め込みメッセージ(Embed)
5. コマンド詳細
`!add_assignment`
cssコードをコピーする!add_assignment [課題名] [提出期限] [詳細説明(オプション)]
例: !add_assignment 数学の宿題 2024-06-20 23:59 数学の教科書のp23-25
`!list_assignments`
diffコードをコピーする!list_assignments
`!remove_assignment`
yamlコードをコピーする!remove_assignment [課題IDまたは課題名]
例: !remove_assignment 1
例: !remove_assignment 数学の宿題
6. 通知フォーマット
課題追加時
diffコードをコピーする新しい課題が追加されました!
課題名: 数学の宿題
提出期限: 2024-06-20 23:59
詳細: 数学の教科書のp23-25
リマインド時
diffコードをコピーする提出期限が近づいています!
課題名: 数学の宿題
提出期限: 明日 2024-06-20 23:59
7. エラーハンドリング
- 不正なコマンド入力時のエラーメッセージ
- データベース接続エラー時の対応
- コマンド実行時の例外処理
8. 拡張機能(オプション)
- 重要度設定機能
- 課題の編集機能
- 課題提出状況のトラッキング機能
- 提出先URLの登録機能
9. セキュリティ
- コマンドの実行権限を制御(例: 課題登録・削除は管理者のみ)
- データベースへの不正アクセスを防ぐためのセキュリティ対策