调整时间通知为每秒
新增wifi设备连入退出判断 为下发开门指令做准备
This commit is contained in:
@@ -127,7 +127,7 @@ public class Bangumi extends Model {
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
switch (time) {
|
||||
case "08:00", "20:00" -> QQBotManager.getInstance().sendMessage(QQBotManager.defGroup,BangumiTools.reportToDayBangumi());
|
||||
case "08:00:00", "20:00:00" -> QQBotManager.getInstance().sendMessage(QQBotManager.defGroup,BangumiTools.reportToDayBangumi());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,8 @@ public abstract class Model implements ModelInterface {
|
||||
public static final String TSDM_PAY = "!tsdm";
|
||||
public static final String TSDM_SIGN = "!tsdm签到";
|
||||
public static final String BAIDU_DOWN = "!bd";
|
||||
public static final String ROUTER_ADD="!添加设备";
|
||||
public static final String ROUTER_DEL="!删除设备";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public class BaiHeHui extends Model {
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
if ("08:10".equals(time)) {
|
||||
if ("08:10:00".equals(time)) {
|
||||
Log.i("开始百合会签到");
|
||||
try {
|
||||
sign();
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Tsdm extends Model {
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
if ("08:00".equals(time)) {
|
||||
if ("08:00:00".equals(time)) {
|
||||
Log.i("开始天使动漫签到");
|
||||
try {
|
||||
tsdmSign();
|
||||
|
||||
106
src/main/java/com/yutou/qqbot/models/XiaoMi/MiRouter.java
Normal file
106
src/main/java/com/yutou/qqbot/models/XiaoMi/MiRouter.java
Normal file
@@ -0,0 +1,106 @@
|
||||
package com.yutou.qqbot.models.XiaoMi;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.yutou.qqbot.QQBotManager;
|
||||
import com.yutou.qqbot.models.Model;
|
||||
import com.yutou.qqbot.utlis.HttpTools;
|
||||
import com.yutou.qqbot.utlis.RedisTools;
|
||||
import com.yutou.qqbot.utlis.XiaoMiRouter;
|
||||
import net.mamoe.mirai.event.events.MessageEvent;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class MiRouter extends Model {
|
||||
public static String redis_key = "MiRouterDevices";
|
||||
|
||||
@Override
|
||||
public boolean isUserPublic() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getUsePowers() {
|
||||
return new String[]{
|
||||
QQFromCommands.ROUTER_ADD,
|
||||
QQFromCommands.ROUTER_DEL
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(Long qq, MessageEvent event, boolean isGroup) {
|
||||
super.onMessage(qq, event, isGroup);
|
||||
if(msg.equals(QQFromCommands.ROUTER_ADD)){
|
||||
String url="http://192.168.31.88:8002/router/device/add.do?qq="+qq;
|
||||
QQBotManager.getInstance().sendMessage(qq,"点击该链接完成设备添加:\n"+url);
|
||||
}else if(msg.equals(QQFromCommands.ROUTER_DEL)){
|
||||
String url="http://192.168.31.88:8002/router/device/del.do?qq="+qq;
|
||||
QQBotManager.getInstance().sendMessage(qq,"点击该删除设备:\n"+url);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
String url = XiaoMiRouter.getDeviceListUrl();
|
||||
JSONObject json = JSONObject.parseObject(HttpTools.get(url));
|
||||
if (json.getInteger("code") == 0) {
|
||||
String _tmp = RedisTools.get(redis_key);
|
||||
if (_tmp == null) {
|
||||
return;
|
||||
}
|
||||
JSONArray devices = JSONArray.parseArray(_tmp);
|
||||
JSONArray devs = (JSONArray) devices.clone();
|
||||
JSONArray array = json.getJSONArray("list");
|
||||
Set<String> links = new HashSet<>();
|
||||
for (Object o : array) {
|
||||
JSONObject item = (JSONObject) o;
|
||||
for (Object device : devices) {
|
||||
JSONObject _device = (JSONObject) device;
|
||||
devs.remove(_device);
|
||||
if (_device.getString("mac").equals(item.getString("mac")) && !_device.getBoolean("online")) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(item.getString("oname"));
|
||||
builder.append(" 欢迎回家!").append("\n");
|
||||
builder.append("点击该链接开门:").append("\n");
|
||||
QQBotManager.getInstance().sendMessage(_device.getLong("qq"), builder.toString());
|
||||
_device.put("online", true);
|
||||
_device.put("name", item.getString("oname"));
|
||||
}
|
||||
if (_device.getString("mac").equals(item.getString("mac")) && _device.getBoolean("online")) {
|
||||
links.add(_device.getString("mac"));
|
||||
_device.put("linkTime", Long.parseLong(item.getJSONObject("statistics").getString("online")));
|
||||
}
|
||||
devs.add(_device);
|
||||
}
|
||||
}
|
||||
devices = (JSONArray) devs.clone();
|
||||
for (Object device : devices) {
|
||||
JSONObject item = (JSONObject) device;
|
||||
if (!links.contains(item.getString("mac"))&&item.getLong("linkTime")!=0) {
|
||||
devs.remove(device);
|
||||
String builder = "你的设备:" +
|
||||
item.getString("name") +
|
||||
"已下线" + "\n" +
|
||||
"在线时长:" + getOnLineTime(item.getString("linkTime")) + "\n";
|
||||
QQBotManager.getInstance().sendMessage(item.getLong("qq"), builder);
|
||||
item.put("online", false);
|
||||
item.put("linkTime",0);
|
||||
devs.add(item);
|
||||
}
|
||||
}
|
||||
RedisTools.set(redis_key, devs.toJSONString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private String getOnLineTime(String online) {
|
||||
long time = Long.parseLong(online);
|
||||
long day = time / 24 / 60 / 60;
|
||||
long h = time / 60 / 60 % 24;
|
||||
long m = time / 60 % 60;
|
||||
long s = time % 60;
|
||||
return String.format("%02d天%02d时%02d分%02d秒", day, h, m, s);
|
||||
}
|
||||
}
|
||||
@@ -222,7 +222,7 @@ public class QQSetu extends Model {
|
||||
@Override
|
||||
public void onTime(String time) {
|
||||
super.onTime(time);
|
||||
if("23:59".equals(time)){
|
||||
if("23:59:00".equals(time)){
|
||||
printTodaySetu();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user