移植之前版本所有功能
This commit is contained in:
@@ -3,11 +3,14 @@ package com.yutou.qqbot.models.setu;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import com.yutou.qqbot.Annotations.UseModel;
|
||||
import com.yutou.qqbot.QQBotManager;
|
||||
import com.yutou.qqbot.models.Model;
|
||||
import com.yutou.qqbot.utlis.AppTools;
|
||||
import com.yutou.qqbot.utlis.Log;
|
||||
import com.yutou.qqbot.utlis.RedisTools;
|
||||
import net.mamoe.mirai.event.events.GroupMessageEvent;
|
||||
import net.mamoe.mirai.event.events.MessageEvent;
|
||||
import net.mamoe.mirai.message.data.At;
|
||||
import net.mamoe.mirai.message.data.Image;
|
||||
import net.mamoe.mirai.message.data.MessageChainBuilder;
|
||||
@@ -15,16 +18,22 @@ import net.mamoe.mirai.message.data.MessageChainBuilder;
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class QQSetu {
|
||||
public static void printTodaySetu() {
|
||||
@UseModel
|
||||
public class QQSetu extends Model {
|
||||
|
||||
private int db_print =1;//统计结果
|
||||
private int db_user =3;//当次数据
|
||||
private long group;
|
||||
private Timer timer;
|
||||
private final Map<String, Float> setuScore = new HashMap<>();
|
||||
|
||||
public void printTodaySetu() {
|
||||
String redisKey= AppTools.getToDayTime() + "_setu";
|
||||
Log.i("今日涩图 redisKey = " + redisKey);
|
||||
String js = RedisTools.get(redisKey, 1);
|
||||
String js = RedisTools.get(redisKey, db_print);
|
||||
if (js != null) {
|
||||
JSONObject json = JSONObject.parseObject(js);
|
||||
if(json.containsKey("isPrint")&&json.getBoolean("isPrint")){
|
||||
@@ -49,7 +58,7 @@ public class QQSetu {
|
||||
setu=json.getJSONObject(groupImage.get(id));
|
||||
if(setu!=null){
|
||||
json.put("isPrint",true);
|
||||
RedisTools.set(1,redisKey,json.toJSONString());
|
||||
RedisTools.set(db_print,redisKey,json.toJSONString());
|
||||
JSONObject info=setu.getJSONObject("info");
|
||||
JSONObject score=setu.getJSONObject("score");
|
||||
MessageChainBuilder builder = new MessageChainBuilder();
|
||||
@@ -87,7 +96,7 @@ public class QQSetu {
|
||||
if (!isSetu(image)) {
|
||||
return;
|
||||
}
|
||||
if (RedisTools.get(event.getGroup().getId()+"setu") != null) {
|
||||
if (RedisTools.get(event.getGroup().getId()+"setu", db_user) != null) {
|
||||
printSetu(event.getGroup().getId());
|
||||
}
|
||||
setuScore.clear();
|
||||
@@ -96,15 +105,15 @@ public class QQSetu {
|
||||
json.put("sourName", event.getSenderName());
|
||||
json.put("sourQQ", event.getSender().getId());
|
||||
json.put("group", event.getGroup().getId());
|
||||
RedisTools.set(event.getGroup().getId()+"setu", json.toJSONString(),6*60);
|
||||
RedisTools.set(event.getGroup().getId()+"setu", json.toJSONString(),6*60, db_user);
|
||||
if (timer != null) {
|
||||
timer.cancel();
|
||||
timer = null;
|
||||
}
|
||||
startTimer(event.getGroup().getId());
|
||||
startTimer();
|
||||
}
|
||||
|
||||
private void startTimer(long group) {
|
||||
private void startTimer() {
|
||||
timer = new Timer();
|
||||
timer.schedule(new TimerTask() {
|
||||
@Override
|
||||
@@ -114,11 +123,11 @@ public class QQSetu {
|
||||
}
|
||||
timer = null;
|
||||
}
|
||||
}, 5 * 60 * 1000);
|
||||
}, (long) (0.9 * 60 * 1000));
|
||||
}
|
||||
|
||||
private void printSetu(long group) {
|
||||
JSONObject jt = JSONObject.parseObject(RedisTools.get(group+"setu"));
|
||||
JSONObject jt = JSONObject.parseObject(RedisTools.get(group+"setu", db_user));
|
||||
String id = jt.getString("id");
|
||||
float average = 0;
|
||||
float max = 0;
|
||||
@@ -154,7 +163,7 @@ public class QQSetu {
|
||||
"其中最高分由:" + maxName + " 给与:" + max +"\n "+
|
||||
"其中最低分由:" + minName + " 给与:" + min;
|
||||
QQBotManager.getInstance().sendMessage(group, builder);
|
||||
String st = RedisTools.get(AppTools.getToDayTime() + "_setu", 1);
|
||||
String st = RedisTools.get(AppTools.getToDayTime() + "_setu", db_print);
|
||||
JSONObject json;
|
||||
if (st == null) {
|
||||
json = new JSONObject();
|
||||
@@ -173,16 +182,23 @@ public class QQSetu {
|
||||
item.put("info", jt);
|
||||
item.put("average", average);
|
||||
json.put(id, item);
|
||||
RedisTools.set(1, AppTools.getToDayTime() + "_setu", json.toJSONString());
|
||||
RedisTools.set(db_print, AppTools.getToDayTime() + "_setu", json.toJSONString());
|
||||
}
|
||||
RedisTools.remove(group+"setu",0);
|
||||
RedisTools.remove(group+"setu",db_user);
|
||||
setuScore.clear();
|
||||
}
|
||||
public void setu(String msg, GroupMessageEvent event) {
|
||||
if (msg.trim().equals("[图片]")) {
|
||||
@Override
|
||||
public void onMessage(Long qq, MessageEvent event, boolean isGroup){
|
||||
System.out.println("qq = " + qq + ", event = " + event.getMessage().contentToString() + ", isGroup = " + isGroup);
|
||||
if(!isGroup){
|
||||
return;
|
||||
}
|
||||
group=qq;
|
||||
String msg=event.getMessage().contentToString();
|
||||
if ("[图片]".equals(msg.trim())) {
|
||||
Image image = (Image) event.getMessage().stream().filter(Image.class::isInstance).findFirst().orElse(null);
|
||||
if (image != null) {
|
||||
setuBuilder(image, event);
|
||||
setuBuilder(image, (GroupMessageEvent) event);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -193,15 +209,30 @@ public class QQSetu {
|
||||
float i = Float.parseFloat(msg.trim());
|
||||
if (i > 0 && i <= 10) {
|
||||
String name = event.getSenderName();
|
||||
String qq=event.getSender().getId()+"";
|
||||
String sender=event.getSender().getId()+"";
|
||||
if (!setuScore.containsKey(name)) {
|
||||
setuScore.put(name+"|"+qq, i);
|
||||
setuScore.put(name+"|"+sender, i);
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
private Timer timer;
|
||||
private static Map<String, Float> setuScore = new HashMap<>();
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
if("23:59".equals(time)){
|
||||
printTodaySetu();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUserPublic() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getUsePowers() {
|
||||
return new String[0];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user