涩图模块:新增每日统计
This commit is contained in:
parent
15b0e14edd
commit
4f3fea8615
@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class QQBotApplication {
|
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) {
|
public static void main(String[] args) {
|
||||||
System.out.println("version = " + version);
|
System.out.println("version = " + version);
|
||||||
SpringApplication.run(QQBotApplication.class, args);
|
SpringApplication.run(QQBotApplication.class, args);
|
||||||
|
@ -1,18 +1,23 @@
|
|||||||
package com.yutou.qqbot.models.setu;
|
package com.yutou.qqbot.models.setu;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yutou.qqbot.QQBotManager;
|
import com.yutou.qqbot.QQBotManager;
|
||||||
import com.yutou.qqbot.interfaces.DownloadInterface;
|
import com.yutou.qqbot.interfaces.DownloadInterface;
|
||||||
import com.yutou.qqbot.models.Model;
|
import com.yutou.qqbot.models.Model;
|
||||||
import com.yutou.qqbot.utlis.HttpTools;
|
import com.yutou.qqbot.utlis.HttpTools;
|
||||||
import com.yutou.qqbot.utlis.Log;
|
import com.yutou.qqbot.utlis.Log;
|
||||||
|
import com.yutou.qqbot.utlis.RedisTools;
|
||||||
import com.yutou.qqbot.utlis.StringUtils;
|
import com.yutou.qqbot.utlis.StringUtils;
|
||||||
import net.mamoe.mirai.event.events.MessageEvent;
|
import net.mamoe.mirai.event.events.MessageEvent;
|
||||||
|
import net.mamoe.mirai.message.data.At;
|
||||||
import net.mamoe.mirai.message.data.MessageChainBuilder;
|
import net.mamoe.mirai.message.data.MessageChainBuilder;
|
||||||
|
import redis.clients.jedis.Jedis;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -32,6 +37,76 @@ public class GetSeTu extends Model {
|
|||||||
return "随机二次元图";
|
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<String> 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<String> 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<Long, List<String>> map = new HashMap<>();
|
||||||
|
for (Object o : array) {
|
||||||
|
JSONObject item = (JSONObject) o;
|
||||||
|
List<String> 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<String> 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
|
@Override
|
||||||
public void onMessage(Long qq, MessageEvent event, boolean isGroup) {
|
public void onMessage(Long qq, MessageEvent event, boolean isGroup) {
|
||||||
super.onMessage(qq, event, 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(" ");
|
String[] keys = key.split(" ");
|
||||||
StringBuilder keyBuilder = new StringBuilder();
|
StringBuilder keyBuilder = new StringBuilder();
|
||||||
for (String _key : keys) {
|
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 = keyBuilder.toString();
|
||||||
key = key.substring(0, key.length() - 5);
|
key = key.substring(0, key.length() - 5);
|
||||||
}else{
|
} else {
|
||||||
key=URLEncoder.encode(key,StandardCharsets.UTF_8);
|
key = URLEncoder.encode(key, StandardCharsets.UTF_8);
|
||||||
}
|
}
|
||||||
if (r18) {
|
if (r18) {
|
||||||
url = "https://api.lolicon.app/setu/v2?" + model + "=" + key + "&r18=1&size=regular";
|
url = "https://api.lolicon.app/setu/v2?" + model + "=" + key + "&r18=1&size=regular";
|
||||||
|
Loading…
Reference in New Issue
Block a user