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()
|
.build()
|
||||||
));
|
));
|
||||||
|
|
||||||
|
private static boolean initialled = false;
|
||||||
static {
|
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() {
|
executor.setEventUncaughtExceptionHandler(new EventUncaughtExceptionHandler() {
|
||||||
private final Logger log = LoggerFactory.getLogger("EventUncaughtExceptionHandler");
|
private final Logger log = LoggerFactory.getLogger("EventUncaughtExceptionHandler");
|
||||||
@Override
|
@Override
|
||||||
@ -77,10 +89,10 @@ public class BotEventHandler implements EventHandler {
|
|||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
executor.addHandler(new BotEventHandler());
|
executor.addHandler(new BotEventHandler());
|
||||||
executor.addHandler(new TestEventHandler());
|
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
LoggerFactory.getLogger("BotEventHandler@Static").error("添加Handler时发生异常", e);
|
LoggerFactory.getLogger("BotEventHandler@Static").error("添加Handler时发生异常", e);
|
||||||
}
|
}
|
||||||
|
initialled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BotEventHandler() {
|
private BotEventHandler() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.lamgc.cgj.bot.event;
|
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.CQDiscussMessageEvent;
|
||||||
import net.lz1998.cq.event.message.CQGroupMessageEvent;
|
import net.lz1998.cq.event.message.CQGroupMessageEvent;
|
||||||
import net.lz1998.cq.event.message.CQMessageEvent;
|
import net.lz1998.cq.event.message.CQMessageEvent;
|
||||||
@ -49,13 +50,17 @@ public class SpringCQMessageEvent extends MessageEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 该功能在CQ上需要CQHttp插件启用http接口调用和serve_data_files为true.
|
* 通过CQ码获取图片下载链接.
|
||||||
* 如使用本方法, 则对方需开启5700端口, 且可能会影响多机器人处理.
|
* @param imageFileName 图片完整CQ码
|
||||||
* @param imageFileName 图片文件名
|
|
||||||
* @return 图片下载链接
|
* @return 图片下载链接
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getImageUrl(String imageFileName) {
|
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();
|
InetSocketAddress remoteAddress = cq.getBotSession().getRemoteAddress();
|
||||||
if(remoteAddress == null) {
|
if(remoteAddress == null) {
|
||||||
throw new IllegalStateException("remoteAddress failed to get");
|
throw new IllegalStateException("remoteAddress failed to get");
|
||||||
@ -63,6 +68,7 @@ public class SpringCQMessageEvent extends MessageEvent {
|
|||||||
String file = cq.getImage(imageFileName).getData().getFile().replaceAll("\\\\", "/");
|
String file = cq.getImage(imageFileName).getData().getFile().replaceAll("\\\\", "/");
|
||||||
return "http://" + remoteAddress.getHostString() + ":5700/data" + file.substring(file.lastIndexOf("/data") + 5);
|
return "http://" + remoteAddress.getHostString() + ":5700/data" + file.substring(file.lastIndexOf("/data") + 5);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getRawMessage() {
|
public Object getRawMessage() {
|
||||||
|
Loading…
Reference in New Issue
Block a user