From 9f58e186d5f71d70362521293daea3053bb66888 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 16 Apr 2020 20:20:29 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20SpringCQMessageEvent=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=20getImageUrl=20=E6=96=B9=E6=B3=95;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cgj/bot/event/SpringCQMessageEvent.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java index 1300066..89f1aa8 100644 --- a/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java +++ b/src/main/java/net/lamgc/cgj/bot/event/SpringCQMessageEvent.java @@ -5,6 +5,7 @@ import net.lz1998.cq.event.message.CQGroupMessageEvent; import net.lz1998.cq.event.message.CQMessageEvent; import net.lz1998.cq.robot.CoolQ; +import java.net.InetSocketAddress; import java.util.Objects; public class SpringCQMessageEvent extends MessageEvent { @@ -47,6 +48,22 @@ public class SpringCQMessageEvent extends MessageEvent { } } + /** + * 该功能在CQ上需要CQHttp插件启用http接口调用和serve_data_files为true. + * 如使用本方法, 则对方需开启5700端口, 且可能会影响多机器人处理. + * @param imageFileName 图片文件名 + * @return 图片下载链接 + */ + @Override + public String getImageUrl(String imageFileName) { + InetSocketAddress remoteAddress = cq.getBotSession().getRemoteAddress(); + if(remoteAddress == null) { + throw new IllegalStateException("remoteAddress failed to get"); + } + String file = cq.getImage(imageFileName).getData().getFile().replaceAll("\\\\", "/"); + return "http://" + remoteAddress.getHostString() + ":5700/data" + file.substring(file.lastIndexOf("/data") + 5); + } + @Override public Object getRawMessage() { return messageEvent;