升级QQ机器人

调整直播状态代码
调整录像路径
This commit is contained in:
Yutousama 2022-04-10 21:43:19 +08:00
parent 251ebe1a0c
commit d2f0be5adb
5 changed files with 64 additions and 63 deletions

38
pom.xml
View File

@ -15,7 +15,7 @@
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<kotlin.version>1.4.10</kotlin.version> <kotlin.version>1.6.10</kotlin.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
@ -54,23 +54,23 @@
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.73</version> <version>1.2.80</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.xerial</groupId> <groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId> <artifactId>sqlite-jdbc</artifactId>
<version>3.28.0</version> <version>3.36.0.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.12</version> <version>1.18.22</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.java-websocket</groupId> <groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId> <artifactId>Java-WebSocket</artifactId>
<version>1.5.1</version> <version>1.5.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
@ -80,45 +80,50 @@
<dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId> <groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId> <artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version> <version>2.2.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId> <artifactId>poi</artifactId>
<version>3.17</version> <version>5.2.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId> <artifactId>poi-scratchpad</artifactId>
<version>3.17</version> <version>5.2.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>3.17</version> <version>5.2.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId> <artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version> <version>4.1.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.mamoe</groupId> <groupId>net.mamoe</groupId>
<artifactId>mirai-core-jvm</artifactId> <artifactId>mirai-core-jvm</artifactId>
<version>2.5.0</version> <!-- 替换版本为你需要的版本 --> <version>2.10.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlin-stdlib</artifactId> <artifactId>kotlinx-coroutines-jdk8</artifactId>
<version>${kotlin.version}</version> <version>1.6.0-native-mt</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-core-jvm</artifactId>
<version>1.6.0-native-mt</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency> <dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
<artifactId>jedis</artifactId> <artifactId>jedis</artifactId>
<version>3.6.0-RC1</version> <version>4.2.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
@ -181,9 +186,6 @@
</goals> </goals>
<configuration> <configuration>
<outputDirectory>
Z:\servier\biliob\
</outputDirectory>
</configuration> </configuration>
</execution> </execution>

View File

@ -108,7 +108,7 @@ public class Live implements ApplicationContextAware {
private void updateUpInfo() { private void updateUpInfo() {
try { try {
upData = service.queryUp(upData); upData = service.queryUp(upData);
upData.setLive(1); //upData.setLive(1);
if (upData.getSavedanmu() == 1) { if (upData.getSavedanmu() == 1) {
danmuManager = new BiliBiliLiveDatabasesManager(); danmuManager = new BiliBiliLiveDatabasesManager();
danmuManager.init("[" + AppTools.getToDayTime() + "]" + upData.getRoomid()); danmuManager.init("[" + AppTools.getToDayTime() + "]" + upData.getRoomid());
@ -329,7 +329,6 @@ public class Live implements ApplicationContextAware {
} }
public void checkLive() { public void checkLive() {
boolean isLive = LiveUtils.isLivePlayer(roomId); boolean isLive = LiveUtils.isLivePlayer(roomId);
upData.setLive(isLive ? 1 : 0); upData.setLive(isLive ? 1 : 0);
System.out.println(roomId+"直播状态="+isLive); System.out.println(roomId+"直播状态="+isLive);
@ -354,6 +353,9 @@ public class Live implements ApplicationContextAware {
* @param bytes 原始hex数据 * @param bytes 原始hex数据
*/ */
public void processData(String msg, byte[] bytes) { public void processData(String msg, byte[] bytes) {
if(msg.contains("[object Object]")){
return;
}
try { try {
JSONObject json = JSONObject.parseObject(msg); JSONObject json = JSONObject.parseObject(msg);
JSONObject data; JSONObject data;
@ -552,6 +554,7 @@ public class Live implements ApplicationContextAware {
checkLive(); checkLive();
} catch (Exception e) { } catch (Exception e) {
Log.e(e); Log.e(e);
Log.i("msg = "+msg);
// Log.i(AppTools.getToDayTimeToString(startTime), roomId, e.getLocalizedMessage()); // Log.i(AppTools.getToDayTimeToString(startTime), roomId, e.getLocalizedMessage());
/*try { /*try {
JSONObject.parseObject(new String(bytes, StandardCharsets.UTF_8)); JSONObject.parseObject(new String(bytes, StandardCharsets.UTF_8));

View File

@ -5,10 +5,7 @@ import com.yutou.bilibili.BiliBili.Datas.AppData;
import com.yutou.bilibili.BiliBili.Live; import com.yutou.bilibili.BiliBili.Live;
import com.yutou.bilibili.BiliBili.LiveUtils; import com.yutou.bilibili.BiliBili.LiveUtils;
import com.yutou.bilibili.QQBot.QQBotManager; import com.yutou.bilibili.QQBot.QQBotManager;
import com.yutou.bilibili.Tools.AppTools; import com.yutou.bilibili.Tools.*;
import com.yutou.bilibili.Tools.FFmpegUtils;
import com.yutou.bilibili.Tools.HttpTools;
import com.yutou.bilibili.Tools.Log;
import java.io.*; import java.io.*;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
@ -140,7 +137,8 @@ public class SaveLive {
} }
private void ffmpegDownload(String url) throws Exception { private void ffmpegDownload(String url) throws Exception {
liveFile = new File(String.format("live%s%s%s[%s]%d.mp4", liveFile = new File(String.format("%slive%s%s%s[%s]%d.mp4",
ConfigTools.load(ConfigTools.CONFIG,"liveSavePath"),
File.separator, File.separator,
AppTools.getToDayTime(), AppTools.getToDayTime(),
File.separator, File.separator,
@ -189,7 +187,8 @@ public class SaveLive {
heartbeats.put(roomId, heartbeat); heartbeats.put(roomId, heartbeat);
//heartbeats.add(beat); //heartbeats.add(beat);
InputStream inputStream = connection.getInputStream(); InputStream inputStream = connection.getInputStream();
liveFile = new File(String.format("live%s%s%s[%s]%d.mp4", liveFile = new File(String.format("%slive%s%s%s[%s]%d.mp4",
ConfigTools.load(ConfigTools.CONFIG,"liveSavePath"),
File.separator, File.separator,
AppTools.getToDayTime(), AppTools.getToDayTime(),
File.separator, File.separator,

View File

@ -13,7 +13,7 @@ import org.springframework.context.annotation.Import;
@SpringBootApplication @SpringBootApplication
public class BilibiliApplication { public class BilibiliApplication {
public static String version="0.8"; public static String version="0.8.3";
public static void main(String[] args) { public static void main(String[] args) {
QQBotManager.getInstance().init(); QQBotManager.getInstance().init();

View File

@ -84,44 +84,41 @@ public class QQBotManager implements ApplicationContextAware {
if (!((boolean) ConfigTools.load(ConfigTools.CONFIG, "qq_bot"))) { if (!((boolean) ConfigTools.load(ConfigTools.CONFIG, "qq_bot"))) {
return; return;
} }
new Thread(new Runnable() { new Thread(() -> {
@Override long qq = Long.parseLong((String) ConfigTools.load(ConfigTools.CONFIG, "qq_number"));
public void run() { String password = (String) ConfigTools.load(ConfigTools.CONFIG, "qq_password");
long qq = Long.parseLong((String) ConfigTools.load(ConfigTools.CONFIG, "qq_number")); bot = BotFactory.INSTANCE.newBot(qq, password, new BotConfiguration() {
String password = (String) ConfigTools.load(ConfigTools.CONFIG, "qq_password"); {
bot = BotFactory.INSTANCE.newBot(qq, password, new BotConfiguration() { setProtocol(MiraiProtocol.ANDROID_PAD);
{ fileBasedDeviceInfo("qq_bot_devices_info.json");
setProtocol(MiraiProtocol.ANDROID_PAD); if (!((boolean) ConfigTools.load(ConfigTools.CONFIG, "qq_debug"))) {
fileBasedDeviceInfo("qq_bot_devices_info.json"); noBotLog();
if (!((boolean) ConfigTools.load(ConfigTools.CONFIG, "qq_debug"))) { noNetworkLog();
noBotLog();
noNetworkLog();
}
} }
}); }
//Events.registerEvents(bot, new MessageListener()); });
GlobalEventChannel.INSTANCE.subscribeAlways(GroupMessageEvent.class, new MessageListener()); //Events.registerEvents(bot, new MessageListener());
Log.i("准备登陆"); GlobalEventChannel.INSTANCE.subscribeAlways(GroupMessageEvent.class, new MessageListener());
bot.login(); Log.i("准备登陆");
Log.i("登陆成功"); bot.login();
isLogin = true; Log.i("登陆成功");
isInit = true; isLogin = true;
new Thread(new Runnable() { isInit = true;
@Override new Thread(new Runnable() {
public void run() { @Override
try { public void run() {
Thread.sleep(1000); try {
} catch (InterruptedException e) { Thread.sleep(1000);
com.yutou.bilibili.Tools.Log.e(e); } catch (InterruptedException e) {
} Log.e(e);
String str = sendMessage("姬妻酱上线拉~");
Log.i(str);
} }
}).start(); String str = sendMessage("姬妻酱上线拉~");
bot.join(); Log.i(str);
}
}).start();
bot.join();
}
}).start(); }).start();
} }
@ -256,7 +253,7 @@ public class QQBotManager implements ApplicationContextAware {
getInstance().sendMessage("正在重启服务"); getInstance().sendMessage("正在重启服务");
System.out.println("结束进程"); System.out.println("结束进程");
try { try {
AppTools.exec("cd /media/yutou/4t/public/servier/biliob && ./start.sh"); AppTools.exec("cd /home/yutou/public/servier/biliob && ./start.sh");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }