mirror of
https://github.com/LamGC/ContentGrabbingJi.git
synced 2025-04-30 06:37:36 +00:00
[Change] SpringCQMessageEvent 更新 getImageUrl 具体实现, 首选BotCode中url地址;
[Change] BotEventHandler 调整initial代码;
This commit is contained in:
parent
9f58e186d5
commit
99cdfb7598
@ -62,7 +62,19 @@ public class BotEventHandler implements EventHandler {
|
||||
.build()
|
||||
));
|
||||
|
||||
private static boolean initialled = false;
|
||||
static {
|
||||
initial();
|
||||
}
|
||||
|
||||
public synchronized static void initial() {
|
||||
if(initialled) {
|
||||
Logger logger = LoggerFactory.getLogger("BotEventHandler@<init>");
|
||||
logger.warn("BotEventHandler已经执行过初始化方法, 可能存在多次执行的问题, 堆栈信息: \n {}",
|
||||
Throwables.getStackTraceAsString(new Exception()));
|
||||
return;
|
||||
}
|
||||
|
||||
executor.setEventUncaughtExceptionHandler(new EventUncaughtExceptionHandler() {
|
||||
private final Logger log = LoggerFactory.getLogger("EventUncaughtExceptionHandler");
|
||||
@Override
|
||||
@ -77,10 +89,10 @@ public class BotEventHandler implements EventHandler {
|
||||
});
|
||||
try {
|
||||
executor.addHandler(new BotEventHandler());
|
||||
executor.addHandler(new TestEventHandler());
|
||||
} catch (IllegalAccessException e) {
|
||||
LoggerFactory.getLogger("BotEventHandler@Static").error("添加Handler时发生异常", e);
|
||||
}
|
||||
initialled = true;
|
||||
}
|
||||
|
||||
private BotEventHandler() {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.lamgc.cgj.bot.event;
|
||||
|
||||
import net.lamgc.cgj.bot.BotCode;
|
||||
import net.lz1998.cq.event.message.CQDiscussMessageEvent;
|
||||
import net.lz1998.cq.event.message.CQGroupMessageEvent;
|
||||
import net.lz1998.cq.event.message.CQMessageEvent;
|
||||
@ -49,13 +50,17 @@ public class SpringCQMessageEvent extends MessageEvent {
|
||||
}
|
||||
|
||||
/**
|
||||
* 该功能在CQ上需要CQHttp插件启用http接口调用和serve_data_files为true.
|
||||
* 如使用本方法, 则对方需开启5700端口, 且可能会影响多机器人处理.
|
||||
* @param imageFileName 图片文件名
|
||||
* 通过CQ码获取图片下载链接.
|
||||
* @param imageFileName 图片完整CQ码
|
||||
* @return 图片下载链接
|
||||
*/
|
||||
@Override
|
||||
public String getImageUrl(String imageFileName) {
|
||||
BotCode code;
|
||||
if(imageFileName.startsWith("[CQ:") && imageFileName.endsWith("]")) {
|
||||
code = BotCode.parse(imageFileName);
|
||||
return code.getParameter("url");
|
||||
} else {
|
||||
InetSocketAddress remoteAddress = cq.getBotSession().getRemoteAddress();
|
||||
if(remoteAddress == null) {
|
||||
throw new IllegalStateException("remoteAddress failed to get");
|
||||
@ -63,6 +68,7 @@ public class SpringCQMessageEvent extends MessageEvent {
|
||||
String file = cq.getImage(imageFileName).getData().getFile().replaceAll("\\\\", "/");
|
||||
return "http://" + remoteAddress.getHostString() + ":5700/data" + file.substring(file.lastIndexOf("/data") + 5);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getRawMessage() {
|
||||
|
Loading…
Reference in New Issue
Block a user