feat(gpt): 优化临时消息处理逻辑
- 修改 clear 方法,移除同步关键字 - 优化 sendTmpMessage 方法,增加日志记录和处理流程 - 更新 GetSeTu 类,改进擦边图片请求的回复文案 -调整 HttpLoggingInterceptor,启用日志输出 - 更新 QQBotApplication 版本号至 1.7.21
This commit is contained in:
103
src/main/java/com/yutou/qqbot/utlis/ZVVImageUtils.java
Normal file
103
src/main/java/com/yutou/qqbot/utlis/ZVVImageUtils.java
Normal file
@@ -0,0 +1,103 @@
|
||||
package com.yutou.qqbot.utlis;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yutou.okhttp.HttpDownloadUtils;
|
||||
import com.yutou.okhttp.HttpLoggingInterceptor;
|
||||
import com.yutou.okhttp.api.BaseApi;
|
||||
import com.yutou.qqbot.interfaces.DownloadInterface;
|
||||
import lombok.val;
|
||||
import okhttp3.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 张vv表情包生成器
|
||||
*/
|
||||
public class ZVVImageUtils {
|
||||
// 单例实例
|
||||
private static volatile ZVVImageUtils instance;
|
||||
private boolean isLocalModel=false;
|
||||
private String queryUrl="https://api.xy0v0.top/search?q=";
|
||||
private String downloadUrl="https://cn-sy1.rains3.com/clouddisk/clouddisk/images/";
|
||||
OkHttpClient okHttpClient = new OkHttpClient.Builder()
|
||||
.connectTimeout(2, TimeUnit.MINUTES)
|
||||
.readTimeout(2, TimeUnit.MINUTES)
|
||||
.build();
|
||||
// 私有构造函数,防止外部实例化
|
||||
private ZVVImageUtils() {
|
||||
}
|
||||
|
||||
// 获取单例实例的方法
|
||||
public static ZVVImageUtils getInstance() {
|
||||
if (instance == null) {
|
||||
synchronized (ZVVImageUtils.class) {
|
||||
if (instance == null) {
|
||||
instance = new ZVVImageUtils();
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
private void checkModel(){
|
||||
isLocalModel=ConfigTools.load(ConfigTools.CONFIG,"zvv.model.local", Boolean.class,false);
|
||||
if(isLocalModel){
|
||||
queryUrl="http://192.168.31.88:8501/search?q=";
|
||||
downloadUrl="http://192.168.31.88:8501/clouddisk/clouddisk/images/";
|
||||
}else{
|
||||
String queryUrl="https://api.xy0v0.top/search?q=";
|
||||
String downloadUrl="https://cn-sy1.rains3.com/clouddisk/clouddisk/images/";
|
||||
}
|
||||
}
|
||||
public void zvv(String text, DownloadInterface downloadInterface) {
|
||||
// checkModel();
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("query", text);
|
||||
json.put("amount", 1);
|
||||
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=UTF-8"), json.toString().getBytes(StandardCharsets.UTF_8));
|
||||
Request.Builder rb = new Request.Builder()
|
||||
.post(body)
|
||||
.addHeader("User-Agent", ConfigTools.getUserAgent())
|
||||
.url(queryUrl + text + "&n=1");
|
||||
Request request = rb.build();
|
||||
okHttpClient.newCall(request).enqueue(new Callback() {
|
||||
@Override
|
||||
public void onFailure(@NotNull Call call, @NotNull IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
|
||||
if (response.isSuccessful()) {
|
||||
val string = response.body().string();
|
||||
if (!StringUtils.isEmpty(string)) {
|
||||
String imageUrl = JSONArray.parse(string).getString(0);
|
||||
HttpDownloadUtils.download(new HttpDownloadUtils.Builder()
|
||||
.setUrl(downloadUrl + imageUrl)
|
||||
.setFileName(imageUrl)
|
||||
.setPath(new File("tmp").getAbsolutePath())
|
||||
.setDownloadInterface(downloadInterface)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
HttpLoggingInterceptor.setLog(true);
|
||||
ZVVImageUtils.getInstance().zvv("如何评论马督工", new DownloadInterface() {
|
||||
@Override
|
||||
public void onDownload(File file) {
|
||||
super.onDownload(file);
|
||||
System.out.println("file.getAbsolutePath() = " + file.getAbsolutePath());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user