diff --git a/src/main/java/com/yutou/qqbot/QQBotApplication.java b/src/main/java/com/yutou/qqbot/QQBotApplication.java index 0558afa..2c7f7d8 100644 --- a/src/main/java/com/yutou/qqbot/QQBotApplication.java +++ b/src/main/java/com/yutou/qqbot/QQBotApplication.java @@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class QQBotApplication { - public static final String version="QQBot v.1.2.19"; + public static final String version="QQBot v.1.2.20"; public static void main(String[] args) { System.out.println("version = " + version); SpringApplication.run(QQBotApplication.class, args); diff --git a/src/main/java/com/yutou/qqbot/models/setu/GetSeTu.java b/src/main/java/com/yutou/qqbot/models/setu/GetSeTu.java index e9d3966..fbfde5d 100644 --- a/src/main/java/com/yutou/qqbot/models/setu/GetSeTu.java +++ b/src/main/java/com/yutou/qqbot/models/setu/GetSeTu.java @@ -1,18 +1,23 @@ package com.yutou.qqbot.models.setu; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yutou.qqbot.QQBotManager; import com.yutou.qqbot.interfaces.DownloadInterface; import com.yutou.qqbot.models.Model; import com.yutou.qqbot.utlis.HttpTools; import com.yutou.qqbot.utlis.Log; +import com.yutou.qqbot.utlis.RedisTools; import com.yutou.qqbot.utlis.StringUtils; import net.mamoe.mirai.event.events.MessageEvent; +import net.mamoe.mirai.message.data.At; import net.mamoe.mirai.message.data.MessageChainBuilder; +import redis.clients.jedis.Jedis; import java.io.File; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -32,6 +37,76 @@ public class GetSeTu extends Model { return "随机二次元图"; } + @Override + public void onTime(Long qq, String time) { + super.onTime(qq, time); + if ("00:00:00".equals(time)) { + del(); + } else if ("23:59:00".equals(time)) { + send(); + } + } + + private void del() { + Jedis redis = RedisTools.getRedis(); + redis.select(RedisTools.QQBOT_USER); + Set keys = redis.keys("Setu_*"); + for (String key : keys) { + redis.del(key); + } + redis.close(); + } + + private void send() { + Jedis redis = RedisTools.getRedis(); + redis.select(RedisTools.QQBOT_USER); + Set keys = redis.keys("Setu_*"); + redis.close(); + for (String key : keys) { + String ret = RedisTools.get(key); + MessageChainBuilder builder = null; + if (!StringUtils.isEmpty(ret)) { + JSONArray array = JSONArray.parseArray(key); + builder = new MessageChainBuilder(); + builder.append("各位老色胚们晚上好,现在公布本群涩图数据!"); + builder.append("本群今日共查询:"); + builder.append(String.valueOf(array.size())); + builder.append("次!\n"); + builder.append("接下来公布大伙的XP系统:"); + builder.append("\n"); + Map> map = new HashMap<>(); + for (Object o : array) { + JSONObject item = (JSONObject) o; + List tags = map.getOrDefault(item.getLong("user"), new ArrayList<>()); + tags.add(item.getString("key")); + map.put(item.getLong("user"), tags); + } + Long maxQQ = -1L; + int max = -1; + for (Long qq : map.keySet()) { + List list = map.get(qq); + if (list.size() > max) { + max = list.size(); + maxQQ = qq; + } + builder.append(new At(qq)) + .append(":\n"); + for (String tag : list) { + builder.append(tag).append("\n"); + } + } + builder.append("那么今日最色批的就是:"); + builder.append(new At(maxQQ)); + builder.append("\n"); + builder.append("如果炸群了请找他(\n"); + builder.append("明天见~"); + } + if (builder != null) { + QQBotManager.getInstance().sendMessage(Long.parseLong(ret.replace("Setu_", "")), builder); + } + } + } + @Override public void onMessage(Long qq, MessageEvent event, boolean isGroup) { super.onMessage(qq, event, isGroup); @@ -60,6 +135,19 @@ public class GetSeTu extends Model { } } } + + JSONObject data = new JSONObject(); + data.put("user", event.getSource().getFromId()); + data.put("group", qq); + data.put("key", key); + + String redis = RedisTools.get("Setu_" + qq); + JSONArray array = new JSONArray(); + if (!StringUtils.isEmpty(redis)) { + array = JSONArray.parseArray(redis); + } + array.add(data); + RedisTools.set("Setu_" + qq, array.toString()); } } @@ -73,12 +161,12 @@ public class GetSeTu extends Model { String[] keys = key.split(" "); StringBuilder keyBuilder = new StringBuilder(); for (String _key : keys) { - keyBuilder.append(URLEncoder.encode(_key,StandardCharsets.UTF_8)).append("&tag="); + keyBuilder.append(URLEncoder.encode(_key, StandardCharsets.UTF_8)).append("&tag="); } key = keyBuilder.toString(); key = key.substring(0, key.length() - 5); - }else{ - key=URLEncoder.encode(key,StandardCharsets.UTF_8); + } else { + key = URLEncoder.encode(key, StandardCharsets.UTF_8); } if (r18) { url = "https://api.lolicon.app/setu/v2?" + model + "=" + key + "&r18=1&size=regular";