[Add] MessageEvent 增加 getImageUrl 抽象方法, 增加对 toString 方法的重写;

[Update] MessageEvent 补充Javadoc;
[Update] MiraiMessageEvent 适配 getImageUrl 方法;
[Change] MiraiMessageEvent 优化缓存存取过程;
This commit is contained in:
LamGC 2020-04-16 19:55:48 +08:00
parent 006352679a
commit 0e182be31c
2 changed files with 47 additions and 2 deletions

View File

@ -14,20 +14,56 @@ public abstract class MessageEvent implements EventObject {
this.message = message; this.message = message;
} }
/**
* 发送消息
* @param message 消息内容
* @return 成功返回MessageId, 如没有MessageId则返回0, 失败返回负数错误码
*/
public abstract int sendMessage(final String message); public abstract int sendMessage(final String message);
/**
* 获取图片下载地址.
* @param image 图片id或图片名
* @return 下载地址
*/
public abstract String getImageUrl(String image);
/**
* 获取原始消息对象.(不推荐使用)
* @return 消息对象
*/
public abstract Object getRawMessage(); public abstract Object getRawMessage();
/**
* 获取来源群组号
* @return 如非群组消息, 返回0
*/
public long getFromGroup() { public long getFromGroup() {
return fromGroup; return fromGroup;
} }
/**
* 获取消息发送者QQ号
* @return 消息发送者QQ号
*/
public long getFromQQ() { public long getFromQQ() {
return fromQQ; return fromQQ;
} }
/**
* 获取消息内容
* @return 消息内容;
*/
public String getMessage() { public String getMessage() {
return message; return message;
} }
@Override
public String toString() {
return "MessageEvent{" +
"fromGroup=" + getFromGroup() +
", fromQQ=" + getFromQQ() +
", message='" + getMessage() + '\'' +
'}';
}
} }

View File

@ -54,6 +54,11 @@ public class MiraiMessageEvent extends MessageEvent {
return 0; return 0;
} }
@Override
public String getImageUrl(String imageId) {
return messageObject.getBot().queryImageUrl(MessageUtils.newImage(imageId));
}
@Override @Override
public Object getRawMessage() { public Object getRawMessage() {
return messageObject; return messageObject;
@ -151,8 +156,12 @@ public class MiraiMessageEvent extends MessageEvent {
log.debug("ImageName: [{}] 缓存命中.", imageName); log.debug("ImageName: [{}] 缓存命中.", imageName);
} }
String cache = imageIdCache.getCache(imageName); if(image == null) {
return image != null ? image : MessageUtils.newImage(cache); image = MessageUtils.newImage(imageIdCache.getCache(imageName));
}
log.debug("ImageName: {}, ImageId: {}", imageName, image.getImageId());
return image;
} else { } else {
log.debug("未设置imageName, 无法使用缓存."); log.debug("未设置imageName, 无法使用缓存.");
return uploadImage0(new File(absolutePath)); return uploadImage0(new File(absolutePath));