- 新增文件下载功能: - 新增 `FileBody.java` 类,定义文件下载的数据结构。 - 新增 `FileCallback.java` 类,处理文件下载的回调逻辑,包括线程池管理和下载进度报告。 - 新增 `HttpDownloadUtils.java` 工具类,提供异步和同步的文件下载方法,并支持下载接口回调。 - 改进HTTP请求处理: - 修改 `NapCatQQ.java` 的 `onResponse` 方法,增加对响应头(`Headers`)的处理。 - 修改 `GetRequestParams.java` 和 `PostRequestParams.java` 的 `getRequest` 方法,支持在请求中添加自定义Header。 - 修改 `HttpCallback.java` 的 `onResponse` 方法,增加对响应头(`Headers`)的处理。 - 优化HTTP日志记录: - 修改 `HttpLoggingInterceptor.java`,调整日志级别为默认输出响应体,修复日志输出格式和异常处理问题。 - 改进BaseApi类: - 修改 `BaseApi.java`,增加对请求头的支持,并优化错误处理逻辑。 - 在拦截器中处理非成功的响应码,返回统一格式的错误信息,避免业务逻辑中重复处理。 - 更新QQBotManager API回调: - 修改 `QQBotManager.java`,更新API回调方法以处理响应头(`Headers`),确保所有回调方法一致。 - 新增GPT API交互功能: - 新增 `OpenAiBean.java` 类,定义与OpenAI交互的数据结构,包含响应中的各个字段。 - 新增 `SiliconGPTManager.java` 类,实现新的GPT管理器,处理与Silicon GPT API的交互。 - 新增 `GPTApi.java` 类,提供与GPT API交互的基础配置和API调用方法。 - 新增 `GPTBuilder.java` 类,用于构建发送给GPT API的请求对象。 - 改进GPT管理器: - 修改 `AbsGPTManager.java`,添加锁机制,防止同一用户同时发起多个请求。 - 提供获取消息列表的方法,限制历史消息的最大数量。 - 支持设置模型版本。 - 修改 `BaiduGPTManager.java`,移除重复的清除方法,继承自父类。 - 使用父类提供的方法获取消息列表,简化代码逻辑。 - 优化和重构: - 进一步优化 `HttpLoggingInterceptor.java` 的日志记录逻辑,提高性能和可读性。 - 重构 `BaseApi.java` 初始化方法,简化代码逻辑,提高可读性。 这些改动增强了HTTP请求处理能力,增加了文件下载功能,并为与GPT API的交互提供了支持。
66 lines
2.6 KiB
Java
66 lines
2.6 KiB
Java
package com.yutou.napcat;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.yutou.napcat.enums.MessageEnum;
|
|
import com.yutou.napcat.event.MessageEvent;
|
|
import com.yutou.napcat.handle.*;
|
|
import com.yutou.napcat.model.*;
|
|
import com.yutou.okhttp.HttpCallback;
|
|
import com.yutou.napcat.http.NapCatApi;
|
|
import com.yutou.qqbot.QQBotManager;
|
|
import com.yutou.qqbot.utlis.Base64Tools;
|
|
import lombok.val;
|
|
import okhttp3.Headers;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class NapCatQQ {
|
|
|
|
|
|
private NapCatQQ() {
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
/* List<BaseHandle<?>> list = new ArrayList<>();
|
|
list.add(new Text("1", false));
|
|
list.add(new Text("2", false));
|
|
list.add(new Text("3"));
|
|
list.add(new Text("4", false));
|
|
list.add(new At(583819556L));
|
|
list.add(new Text("5"));
|
|
QQBotManager.getInstance().sendMessage(false, 891655174L, list);*/
|
|
NapCatApi.setLog(false);
|
|
File file = new File("C:\\Users\\58381\\Downloads\\0074TT8Yly1hp5mqidwqeg30g20f27wh.gif");
|
|
NapCatApi.getMessageApi().sendPrivateMsg(
|
|
MessageHandleBuild.create()
|
|
.setQQNumber(583819556L)
|
|
//.add(new Image(file))
|
|
.add(new Text("abc"))
|
|
.build()
|
|
).enqueue(new HttpCallback<SendMessageResponse>() {
|
|
@Override
|
|
public void onResponse(Headers headers, int code, String status, SendMessageResponse response, String rawResponse) {
|
|
System.out.println("code = " + code + ", status = " + status + ", response = " + response + ", rawResponse = " + rawResponse);
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable throwable) {
|
|
throwable.printStackTrace();
|
|
}
|
|
});
|
|
}
|
|
/**
|
|
* 私聊
|
|
{"self_id":240828363,"user_id":583819556,"time":1714472684,"message_id":376,"real_id":376,"message_type":"private","sender":{"user_id":583819556,"nickname":"魔芋","card":""},"raw_message":"123","font":14,"sub_type":"friend","message":[{"data":{"text":"123"},"type":"text"}],"message_format":"array","post_type":"message"}
|
|
*/
|
|
|
|
/**
|
|
* 群聊
|
|
* {"self_id":240828363,"user_id":583819556,"time":1714472695,"message_id":377,"real_id":377,"message_type":"group","sender":{"user_id":583819556,"nickname":"魔芋","card":"","role":"owner"},"raw_message":"222","font":14,"sub_type":"normal","message":[{"data":{"text":"222"},"type":"text"}],"message_format":"array","post_type":"message","group_id":891655174}
|
|
*/
|
|
}
|