Open ktaroabobon opened 5 months ago
この変更は、Discordボットに論文検索機能を追加し、/thesis
コマンドを用いてCiNii APIから特定のキーワードに基づいた最新論文を取得できるようにします。また、ボットの応答処理を整理し、複数のコマンドに対応するためのインタラクションハンドリングのリファクタリングも行われました。これにより、ユーザーはDiscord上で簡単に論文情報を検索し、参照できるようになります。
ファイルパス | 変更内容概要 |
---|---|
app/internal/controllers/discord.go | 新しいthesis コマンドの追加、インタラクションハンドリングのリファクタリング |
app/internal/models/cinii.go | CiNiiResponse 構造体にネストされた構造体定義を追加 |
app/internal/models/paper.go | Paper 構造体のフィールドを拡張 |
app/internal/repositories/cinni.go | CiNiiRepository に FetchThesis メソッドを追加 |
app/internal/repositories/paper.go | PaperRepository に FetchRSS メソッドを追加 |
app/internal/services/abobon_aritcles.go | Abobonアーティクルサービスの定義と対応するメソッドの追加 |
app/internal/services/handle_commands.go | DiscordService のインタラクションハンドリングロジックの更新 |
app/internal/services/ping.go | PingService の HandlePingCommand メソッドの追加 |
app/internal/services/thesis.go | ThesisService に HandleThesisCommand メソッド等を追加 |
app/internal/utils/config.go | 環境変数管理のための Config 構造体と関連する関数の追加 |
app/main.go | 設定オブジェクトを使用してDiscordボットトークンを取得するように更新 |
/thesis
コマンドのシーケンス図sequenceDiagram
participant User
participant DiscordBot
participant CiNiiAPI
User->>DiscordBot: /thesis keyword
DiscordBot->>DiscordBot: HandleInteraction()
DiscordBot->>CiNiiAPI: FetchThesis(keyword)
CiNiiAPI-->>DiscordBot: CiNiiResponse
DiscordBot-->>User: Message with paper details
Objective | Addressed | Explanation |
---|---|---|
CiNiiのAPIを使用して最新論文を取得するコマンドの作成 (#32) | ✅ | |
キーワードに基づいた論文検索機能の実装 (#32) | ✅ | |
Clean Architectureに従ったファイルと関数分け (#32) | ✅ |
ふわふわウサギがコードを織る、 新しい機能で検索を彩る。 論文を探し、知識を広げ、 Discordに歓喜が溢れる朝。
🐇📚✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
close #32
やったこと
Summary by CodeRabbit
新機能
バグ修正
HandleSlashCommands
メソッドをリファクタリングし、全てのインタラクションをHandleInteraction
にルーティングするよう修正。その他の変更