Skip to content

Commit

Permalink
feat: create temp dir logic
Browse files Browse the repository at this point in the history
  • Loading branch information
m1sk9 committed Jul 27, 2023
1 parent a4809b2 commit 6e8121a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 10 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
/target
.env

# 一時的なテキストファイルの生成に使用する
/temp
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ichiyoAI は Discord 上で ChatGPI と会話ができる Discord Bot です。

----

- [ ] 2000文字以上のレスポンスに対応する
- [x] 2000文字以上のレスポンスに対応する
- [ ] 会話のコンテキスト維持機能に対応する

## Usage
Expand All @@ -22,7 +22,7 @@ ichiyoAI は Discord 上で ChatGPI と会話ができる Discord Bot です。

ichiyoAI が起動しているBotに対してチャット内容と共にメンションを送信するとレスポンスを返します。

- ChatGPT からのレスポンスが2000文字を超えた場合は表示されません。その場で切り捨てられます
- ChatGPT からのレスポンスが2000文字を超えた場合はテキストファイルに変換して返信します
- メッセージのどの位置にメンションを挿入しても反応します。

## Installation
Expand Down
2 changes: 1 addition & 1 deletion src/events/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ pub async fn chat_ai(ctx: &Context, msg: Message) {
match response_content.chars().count() {
count if count > 2000 => {
create_temp_file(response_content.to_string());
edit_response_with_file(&ctx, waiting_message, "temp.txt").await;
edit_response_with_file(&ctx, waiting_message, "temp/temp.txt").await;
}
_ => edit_response(&ctx, waiting_message, response_content).await,
}
Expand Down
23 changes: 16 additions & 7 deletions src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
use std::fs::File;
use std::fs::{create_dir, File};
use std::io::Write;

pub fn create_temp_file(content: String) -> File {
let mut temp_file = File::create("temp.txt").expect("一時ファイルの作成に失敗しました。");
temp_file
.write_all(content.as_ref())
.expect("一時ファイルへの書き込みに失敗しました。");
return temp_file;
pub fn create_temp_file(content: String) {
match create_dir("temp") {
Ok(_) => {
println!("一時フォルダを作成しました。");

let mut temp_file =
File::create("temp/temp.txt").expect("一時ファイルの作成に失敗しました。");
temp_file
.write_all(content.as_ref())
.expect("一時ファイルへの書き込みに失敗しました。");

println!("一時ファイルを作成しました。")
}
Err(_) => panic!("一時ディレクトリを作成できませんでした。"),
}
}

0 comments on commit 6e8121a

Please sign in to comment.