Skip to content

Commit

Permalink
[Add] BotCommandProcess 新增'色图'功能以随机从排行榜中获取一张图片;
Browse files Browse the repository at this point in the history
[Add] BufferMessageEvent 增加用于获取Sender发送内容的Event实现;
[Change] BotEventHandler Handler现在允许命令处理方法不返回消息(返回'null');
  • Loading branch information
LamGC committed May 20, 2020
1 parent f040f13 commit 461cd24
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 1 deletion.
16 changes: 16 additions & 0 deletions src/main/java/net/lamgc/cgj/bot/BotCommandProcess.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@
import net.lamgc.cgj.Main;
import net.lamgc.cgj.bot.cache.*;
import net.lamgc.cgj.bot.event.BotEventHandler;
import net.lamgc.cgj.bot.event.BufferMessageEvent;
import net.lamgc.cgj.bot.sort.PreLoadDataComparator;
import net.lamgc.cgj.pixiv.PixivDownload;
import net.lamgc.cgj.pixiv.PixivSearchBuilder;
import net.lamgc.cgj.pixiv.PixivURL;
import net.lamgc.cgj.pixiv.PixivDownload.PageQuality;
import net.lamgc.cgj.pixiv.PixivURL.RankingContentType;
import net.lamgc.cgj.pixiv.PixivURL.RankingMode;
import net.lamgc.cgj.util.URLs;
import net.lamgc.utils.base.runner.Argument;
import net.lamgc.utils.base.runner.Command;
Expand Down Expand Up @@ -295,6 +299,18 @@ public static String userArtworks() {
return "功能未完成";
}

@Command(commandName = "st")
public static String r18Image() {
BufferMessageEvent event = new BufferMessageEvent();
RandomRankingArtworksSender artworksSender =
new RandomRankingArtworksSender(event, 1, 200,
RankingMode.MODE_MALE,
RankingContentType.TYPE_ALL,
PageQuality.ORIGINAL);
artworksSender.send();
return event.getBufferMessage();
}

/**
* 搜索命令
* @param fromGroup 来源群(系统提供)
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/net/lamgc/cgj/bot/event/BotEventHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ public void processMessage(MessageEvent event) {
}
}
long processTime = System.currentTimeMillis() - time;
if(Objects.requireNonNull(result) instanceof String && !isMute(event.getFromGroup())) {
if(!Objects.isNull(result) && result instanceof String && !isMute(event.getFromGroup())) {
try {
event.sendMessage((String) result);
} catch (Exception e) {
Expand Down
59 changes: 59 additions & 0 deletions src/main/java/net/lamgc/cgj/bot/event/BufferMessageEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package net.lamgc.cgj.bot.event;

import java.util.Objects;

public class BufferMessageEvent extends MessageEvent {

StringBuffer buffer = new StringBuffer();

public final MessageEvent parent;

/**
* 以空消息空Id生成BufferMessageEvent
*/
public BufferMessageEvent() {
super(0, 0, "");
parent = null;
}

/**
* 提供消息内容构造BufferMessageEvent
* @param message 传入的消息内容
*/
public BufferMessageEvent(String message) {
super(0, 0, message);
parent = null;
}

/**
* 使用事件构造BufferMessageEvent
* @param parentEvent 父级消息事件对象
*/
public BufferMessageEvent(MessageEvent parentEvent) {
super(parentEvent.getFromGroup(), parentEvent.getFromQQ(), parentEvent.getMessage());
parent = parentEvent;
}

@Override
public int sendMessage(String message) {
buffer.append(message);
return 0;
}

/**
* 当提供了父级消息事件时, 本方法调用父级消息事件对象的{@code getImageUrl(String)}, 如果没有, 返回{@code null}
*/
@Override
public String getImageUrl(String image) {
return Objects.isNull(this.parent) ? null : this.parent.getImageUrl(image);
}

/**
* 获取缓冲区消息内容
* @return 消息内容
*/
public String getBufferMessage() {
return buffer.toString();
}

}

0 comments on commit 461cd24

Please sign in to comment.