新增B站直播间领电池功能
新增B站APP操作相关API 优化B站登陆根据QQ号分账号存储 修复Redis获取列表时为空报错问题
This commit is contained in:
@@ -2,7 +2,8 @@ package com.yutou.qqbot.models.BiliBili;
|
||||
|
||||
import com.yutou.qqbot.Annotations.UseModel;
|
||||
import com.yutou.qqbot.QQBotManager;
|
||||
import com.yutou.qqbot.bilibili.BiliBiliManga;
|
||||
import com.yutou.qqbot.bilibili.AppUserTask;
|
||||
import com.yutou.qqbot.bilibili.BiliBiliAppUtils;
|
||||
import com.yutou.qqbot.bilibili.BiliBiliUtils;
|
||||
import com.yutou.qqbot.models.Model;
|
||||
import com.yutou.qqbot.utlis.RedisTools;
|
||||
@@ -20,6 +21,7 @@ public class BiliBiliLive extends Model {
|
||||
@Override
|
||||
public String[] getUsePowers() {
|
||||
return new String[]{
|
||||
Model.QQGroupCommands.BILI_LIVE_DANMU_LIST,
|
||||
Model.QQGroupCommands.BILI_LIVE_DANMU_SEND,
|
||||
QQGroupCommands.BILI_LIVE_DANMU_DEL
|
||||
};
|
||||
@@ -34,32 +36,45 @@ public class BiliBiliLive extends Model {
|
||||
public synchronized void onTime(Long qq, String time) {
|
||||
super.onTime(qq, time);
|
||||
if ("00:01:00".equals(time)) {
|
||||
QQBotManager.getInstance().sendMessage(qq, BiliBiliUtils.liveSignIn());
|
||||
Set<String> biliLive = RedisTools.list_get("bili_live");
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (String id : biliLive) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
boolean sign = BiliBiliUtils.sendLiveDanmu(Integer.parseInt(id), "打卡");
|
||||
builder.append("BiliLiveSign ").append(id).append(":").append(sign).append("\n");
|
||||
}
|
||||
QQBotManager.getInstance().sendMessage(qq, builder.toString());
|
||||
signLive(QQBotManager.defQQ, qq);
|
||||
}
|
||||
}
|
||||
|
||||
private void signLive(long qq, long sendQQ) {
|
||||
BiliBiliUtils biliUtils = BiliBiliUtils.getInstance(qq);
|
||||
QQBotManager.getInstance().sendMessage(sendQQ, biliUtils.liveSignIn());
|
||||
Set<String> biliLive = RedisTools.list_get("bili_live");
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (String id : biliLive) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
boolean sign = biliUtils.sendLiveDanmu(Integer.parseInt(id), "打卡");
|
||||
builder.append("BiliLiveSign").append(id).append(":").append(sign).append("\n");
|
||||
}
|
||||
QQBotManager.getInstance().sendMessage(sendQQ, builder.toString());
|
||||
AppUserTask task = new BiliBiliAppUtils(QQBotManager.defQQ).startAppTask();
|
||||
builder = new StringBuilder();
|
||||
builder.append("执行APP任务").append("\n").append(task.toMessageFormat());
|
||||
QQBotManager.getInstance().sendMessage(sendQQ, builder.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(Long qq, MessageEvent event, boolean isGroup) {
|
||||
super.onMessage(qq, event, isGroup);
|
||||
if (!msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_SEND) && !msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_DEL)) {
|
||||
if (!msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_SEND) &&
|
||||
!msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_DEL) &&
|
||||
!msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_LIST)) {
|
||||
return;
|
||||
}
|
||||
if(msg.equals(QQGroupCommands.BILI_LIVE_DANMU_SEND+"debug")){
|
||||
onTime(qq,"00:01:00");
|
||||
if (msg.equals(QQGroupCommands.BILI_LIVE_DANMU_SEND)) {
|
||||
signLive(user, qq);
|
||||
return;
|
||||
}
|
||||
|
||||
BiliBiliUtils biliUtils = BiliBiliUtils.getInstance(isGroup ? event.getSource().getFromId() : qq);
|
||||
StringBuilder message;
|
||||
message = new StringBuilder();
|
||||
try {
|
||||
@@ -67,11 +82,13 @@ public class BiliBiliLive extends Model {
|
||||
if (msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_DEL)) {
|
||||
isDel = true;
|
||||
msg = msg.replace(QQGroupCommands.BILI_LIVE_DANMU_DEL, "").trim();
|
||||
} else {
|
||||
} else if (msg.startsWith(QQGroupCommands.BILI_LIVE_DANMU_SEND)) {
|
||||
msg = msg.replace(QQGroupCommands.BILI_LIVE_DANMU_SEND, "").trim();
|
||||
} else {
|
||||
msg = "0";
|
||||
}
|
||||
Integer roomId = Integer.parseInt(msg);
|
||||
if (BiliBiliUtils.checkLiveRoom(roomId)) {
|
||||
if (biliUtils.checkLiveRoom(roomId) && roomId != 0) {
|
||||
if (isDel && RedisTools.list_isExist("bili_live", roomId + "")) {
|
||||
RedisTools.list_remove("bili_live", roomId + "");
|
||||
message.append("直播签到删除成功").append("\n");
|
||||
@@ -79,7 +96,7 @@ public class BiliBiliLive extends Model {
|
||||
RedisTools.list_add("bili_live", roomId + "");
|
||||
message.append("直播签到添加成功").append("\n");
|
||||
}
|
||||
} else {
|
||||
} else if (roomId != 0) {
|
||||
message.append("直播签到操作失败\n");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -90,8 +107,8 @@ public class BiliBiliLive extends Model {
|
||||
for (String id : biliLive) {
|
||||
message.append(id)
|
||||
.append(":")
|
||||
.append(BiliBiliUtils.getUserInfo(
|
||||
BiliBiliUtils.getLiveRoom(Integer.parseInt(id))
|
||||
.append(biliUtils.getUserInfo(
|
||||
biliUtils.getLiveRoom(Integer.parseInt(id))
|
||||
.getJSONObject("data")
|
||||
.getInteger("uid"))
|
||||
.getJSONObject("data")
|
||||
|
||||
Reference in New Issue
Block a user