mirror of
https://github.com/Geniusay/ChopperBot.git
synced 2026-09-01 14:50:18 +08:00
账号模块视频和弹幕api
This commit is contained in:
Generated
+27
@@ -0,0 +1,27 @@
|
||||
|
||||
w
|
||||
Gchopperbot-hot/src/main/java/org/example/core/guard/HotModuleGuard.java,a\0\a041720980ce8572991a33b197c3d81b7cb2e69d
|
||||
q
|
||||
Achopperbot-live/src/main/java/org/example/api/DouyuRecordApi.java,8\f\8f191dc97b4e0d2571f649a1600c703d34ad26c2
|
||||
x
|
||||
Hchopperbot-common/src/main/java/org/example/init/InitPluginRegister.java,5\a\5a133c519459ad4a22878928f82def26862acd31
|
||||
{
|
||||
Kdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/03.çƒåº¦ç›‘控æ�’ä»¶.md,c\4\c4fa3a693a39c9b1847c5eaf7059cca997527b45
|
||||
{
|
||||
Kdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/01.æ–‡ä»¶ç¼“å˜æ�’ä»¶.md,c\1\c1323f01e0736fea6d2fb87e88e904a79a9a30a8
|
||||
p
|
||||
@chopperbot-account/src/main/java/org/example/core/VideoType.java,2\6\265ab5b7137a542213410da8195b02b06a7692d0
|
||||
�
|
||||
Qdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/04.爬虫任务ä¸å¿ƒæ�’ä»¶.md,e\8\e83a2fa7f8f76b2daf1183cff7572f224a44ac6b
|
||||
†
|
||||
Vchopperbot-barrage/src/main/java/org/example/init/module/BarrageModuleInitMachine.java,a\f\af71a49d825f2b79243dc2df9f134a7cb4640b2e
|
||||
n
|
||||
>chopperbot-hot/src/main/java/org/example/config/FollowDog.java,7\4\74b76b9d2bd43d07054d9e6eb36e9ee4507da3e1
|
||||
t
|
||||
Dchopperbot-console/src/main/java/org/example/ConsoleApplication.java,a\b\abdd1c60a367131d127a01ca5bc834e95020a4e3
|
||||
O
|
||||
config/Hot/hotModuleConfig.json,5\0\50eb6bdb4a00f0b15b783cfc947a7a759c934449
|
||||
v
|
||||
Fchopperbot-creeper/src/main/java/org/example/api/MonitorCenterApi.java,5\c\5c440003ab53fc4466023bd8249cb4898ddeb5d8
|
||||
w
|
||||
Gchopperbot-creeper/src/main/java/org/example/api/CreeperManagerApi.java,5\d\5d5897de24b870055a6792786f1de4b6fe558b74
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
|
||||
w
|
||||
Gchopperbot-hot/src/main/java/org/example/core/guard/HotModuleGuard.java,a\0\a041720980ce8572991a33b197c3d81b7cb2e69d
|
||||
q
|
||||
Achopperbot-live/src/main/java/org/example/api/DouyuRecordApi.java,8\f\8f191dc97b4e0d2571f649a1600c703d34ad26c2
|
||||
x
|
||||
Hchopperbot-common/src/main/java/org/example/init/InitPluginRegister.java,5\a\5a133c519459ad4a22878928f82def26862acd31
|
||||
p
|
||||
@chopperbot-account/src/main/java/org/example/core/VideoType.java,2\6\265ab5b7137a542213410da8195b02b06a7692d0
|
||||
{
|
||||
Kdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/01.æ–‡ä»¶ç¼“å˜æ�’ä»¶.md,c\1\c1323f01e0736fea6d2fb87e88e904a79a9a30a8
|
||||
{
|
||||
Kdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/03.çƒåº¦ç›‘控æ�’ä»¶.md,c\4\c4fa3a693a39c9b1847c5eaf7059cca997527b45
|
||||
�
|
||||
Qdoc/docs/01.指å�—/01.å¼€å�‘指å�—/02.系统æ�’ä»¶/04.爬虫任务ä¸å¿ƒæ�’ä»¶.md,e\8\e83a2fa7f8f76b2daf1183cff7572f224a44ac6b
|
||||
†
|
||||
Vchopperbot-barrage/src/main/java/org/example/init/module/BarrageModuleInitMachine.java,a\f\af71a49d825f2b79243dc2df9f134a7cb4640b2e
|
||||
t
|
||||
Dchopperbot-console/src/main/java/org/example/ConsoleApplication.java,a\b\abdd1c60a367131d127a01ca5bc834e95020a4e3
|
||||
n
|
||||
>chopperbot-hot/src/main/java/org/example/config/FollowDog.java,7\4\74b76b9d2bd43d07054d9e6eb36e9ee4507da3e1
|
||||
O
|
||||
config/Hot/hotModuleConfig.json,5\0\50eb6bdb4a00f0b15b783cfc947a7a759c934449
|
||||
v
|
||||
Fchopperbot-creeper/src/main/java/org/example/api/MonitorCenterApi.java,5\c\5c440003ab53fc4466023bd8249cb4898ddeb5d8
|
||||
w
|
||||
Gchopperbot-creeper/src/main/java/org/example/api/CreeperManagerApi.java,5\d\5d5897de24b870055a6792786f1de4b6fe558b74
|
||||
@@ -29,11 +29,32 @@
|
||||
<artifactId>edgegrid-signer-core</artifactId>
|
||||
<version>5.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.rabbitmq</groupId>
|
||||
<artifactId>amqp-client</artifactId>
|
||||
<version>4.8.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
<version>2.2.4.RELEASE</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-common</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-file</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package org.example.api;
|
||||
|
||||
import org.example.cache.FileCacheManager;
|
||||
import org.example.constpool.ConstPool;
|
||||
import org.example.constpool.GlobalFileCache;
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.init.InitPluginRegister;
|
||||
import org.example.plugin.CommonPlugin;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.File;
|
||||
import java.security.Key;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author welsir
|
||||
* @Date 2023/9/9 12:36
|
||||
*/
|
||||
public class BarrageApi {
|
||||
|
||||
private static final String BARRAGE_FILE_ROOT_PATH = (String) GlobalFileCache.ModuleSrcConfigFile.get("src", ConstPool.BARRAGE);
|
||||
|
||||
private static final HashMap<String,List<File>> barrageFileMap = new HashMap<>();
|
||||
|
||||
private static final String[] platForms = {"bilibili","douyu","douyin","huya","tiktok","twitch"};
|
||||
public HashMap getAllBarrageFile(){
|
||||
for (String plathForm : platForms) {
|
||||
File platformDir = new File(BARRAGE_FILE_ROOT_PATH + "/" + plathForm);
|
||||
for (File anchorDir : Objects.requireNonNull(platformDir.listFiles())) {
|
||||
if(anchorDir.isDirectory()){
|
||||
String anchor = anchorDir.getName();
|
||||
List<File> fileList = new ArrayList<>(Arrays.asList(Objects.requireNonNull(anchorDir.listFiles())));
|
||||
barrageFileMap.put(anchor, fileList);
|
||||
}
|
||||
}
|
||||
}
|
||||
return barrageFileMap;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.example.api;
|
||||
|
||||
import org.example.constpool.ConstPool;
|
||||
import org.example.constpool.GlobalFileCache;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author welsir
|
||||
* @Date 2023/9/9 12:36
|
||||
*/
|
||||
public class VideoApi {
|
||||
|
||||
private static final String VIDEO_FILE_ROOT_PATH = (String) GlobalFileCache.ModuleSrcConfigFile.get("src", ConstPool.LIVE_RECORD);
|
||||
|
||||
private static final HashMap<String, Map<String,List<File>>> liveRecordMap = new HashMap<>();
|
||||
|
||||
public HashMap getAllLiveRecord(){
|
||||
for (File type : Objects.requireNonNull(new File(VIDEO_FILE_ROOT_PATH).listFiles(File::isDirectory))) {
|
||||
Map<String, List<File>> recordMap = new HashMap<>();
|
||||
|
||||
for (File platform : Objects.requireNonNull(type.listFiles(File::isDirectory))) {
|
||||
List<File> videoFiles = Arrays.asList(Objects.requireNonNull(platform.listFiles()));
|
||||
|
||||
recordMap.put(platform.getName(), videoFiles);
|
||||
}
|
||||
liveRecordMap.put("online".equals(type.getName()) ? "online" : "record", recordMap);
|
||||
}
|
||||
return liveRecordMap;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.example.api;
|
||||
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.core.guard.VideoPushGuard;
|
||||
import org.example.init.InitPluginRegister;
|
||||
import org.example.plugin.CommonPlugin;
|
||||
|
||||
/**
|
||||
* @Description 视频推送插件api
|
||||
* @Author welsir
|
||||
* @Date 2023/9/5 22:36
|
||||
*/
|
||||
public class VideoPublishApi {
|
||||
|
||||
public static void pushVideo(Object obj){
|
||||
VideoPushGuard plugin = InitPluginRegister.getPlugin(PluginName.VIDEO_PUSH_PLUGIN, VideoPushGuard.class);
|
||||
if (plugin != null) {
|
||||
plugin.sendVideo(obj);
|
||||
}else {
|
||||
System.out.println("plugin is null!");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
pushVideo("hello");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import java.util.*;
|
||||
* @Date 2023/9/4 22:07
|
||||
*/
|
||||
public class Exchange {
|
||||
private final Map<String, List<VideoQueue>> bindings = new HashMap();
|
||||
private final Map<String, List<VideoQueue>> bindings = new HashMap<>();
|
||||
|
||||
public Exchange() {
|
||||
}
|
||||
@@ -20,9 +20,10 @@ public class Exchange {
|
||||
this.bindings.get(routingKey).add(queue);
|
||||
}
|
||||
|
||||
|
||||
public void publish(String routingKey, Object message) {
|
||||
if (this.bindings.containsKey(routingKey)) {
|
||||
List<VideoQueue> queues = (List)this.bindings.get(routingKey);
|
||||
List<VideoQueue> queues = this.bindings.get(routingKey);
|
||||
Iterator var4 = queues.iterator();
|
||||
|
||||
while(var4.hasNext()) {
|
||||
@@ -30,7 +31,6 @@ public class Exchange {
|
||||
queue.enqueue(message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
package org.example.core.guard;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.example.core.VideoType;
|
||||
import org.example.core.exchange.Exchange;
|
||||
import org.example.plugin.GuardPlugin;
|
||||
import org.example.pojo.Video;
|
||||
import org.example.pojo.VideoQueue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author welsir
|
||||
* @Date 2023/9/4 22:10
|
||||
*/
|
||||
public class VideoPublishGuard extends GuardPlugin {
|
||||
|
||||
private Exchange exchange;
|
||||
private static String PATH = "config/Account/account.json";
|
||||
private BlockingQueue<Object> receiveVideo;
|
||||
|
||||
public VideoPublishGuard(String module, String pluginName, List<String> needPlugins, boolean isAutoStart) {
|
||||
super(module, pluginName, needPlugins, isAutoStart);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean init() {
|
||||
exchange = new Exchange();
|
||||
JSONObject object = null;
|
||||
|
||||
try {
|
||||
object = JSON.parseObject(Files.readString(Path.of(PATH)));
|
||||
} catch (IOException var16) {
|
||||
throw new RuntimeException(var16);
|
||||
}
|
||||
|
||||
Iterator<Map.Entry<String, Object>> iterator = object.entrySet().iterator();
|
||||
|
||||
while(iterator.hasNext()) {
|
||||
Map.Entry<String, Object> entry = iterator.next();
|
||||
String platform = entry.getKey();
|
||||
JSONObject platformData = (JSONObject)entry.getValue();
|
||||
System.out.println("Platform: " + platform);
|
||||
System.out.println("platformData: " + platformData);
|
||||
Iterator<Map.Entry<String, Object>> iterator1 = platformData.entrySet().iterator();
|
||||
|
||||
while(true) {
|
||||
Object types;
|
||||
Object isMatch;
|
||||
do {
|
||||
Map.Entry<String, Object> next = iterator1.next();
|
||||
JSONObject value = (JSONObject)next.getValue();
|
||||
types = value.get("type");
|
||||
isMatch = value.get("isMatch");
|
||||
} while(types == null);
|
||||
|
||||
Pattern pattern = Pattern.compile("\"([^\"]+)\"");
|
||||
Matcher matcher = pattern.matcher(types.toString());
|
||||
|
||||
while(matcher.find()) {
|
||||
String type = matcher.group(1);
|
||||
Iterator var14 = platformData.keySet().iterator();
|
||||
|
||||
while(var14.hasNext()) {
|
||||
String s = (String)var14.next();
|
||||
exchange.bind(new VideoQueue(platform + "-" + s, "true".equals(isMatch)), type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
receiveVideo = new ArrayBlockingQueue<>(1024);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
try {
|
||||
Object videoMsg = receiveVideo.poll(5L, TimeUnit.SECONDS);
|
||||
if (videoMsg != null && videoMsg instanceof Video) {
|
||||
Video video = (Video)videoMsg;
|
||||
Iterator var3 = video.getVideoType().iterator();
|
||||
|
||||
while(var3.hasNext()) {
|
||||
VideoType videoType = (VideoType)var3.next();
|
||||
exchange.publish(videoType.toString(), video.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
} catch (InterruptedException var5) {
|
||||
throw new RuntimeException(var5);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendVideo(Object msg) {
|
||||
receiveVideo.offer(msg);
|
||||
}
|
||||
|
||||
// public static void main(String[] args) {
|
||||
// exchange = new Exchange();
|
||||
// JSONObject object = null;
|
||||
//
|
||||
// try {
|
||||
// object = JSON.parseObject(Files.readString(Path.of(PATH)));
|
||||
// } catch (IOException var16) {
|
||||
// throw new RuntimeException(var16);
|
||||
// }
|
||||
//
|
||||
// Iterator<Map.Entry<String, Object>> iterator = object.entrySet().iterator();
|
||||
//
|
||||
// Iterator iterator1;
|
||||
// label68:
|
||||
// while(iterator.hasNext()) {
|
||||
// Map.Entry<String, Object> entry = (Map.Entry)iterator.next();
|
||||
// String platform = (String)entry.getKey();
|
||||
// JSONObject platformData = (JSONObject)entry.getValue();
|
||||
// System.out.println("Platform: " + platform);
|
||||
// System.out.println("platformData: " + platformData);
|
||||
// iterator1 = platformData.entrySet().iterator();
|
||||
//
|
||||
// while(true) {
|
||||
// Object types;
|
||||
// Object isMatch;
|
||||
// do {
|
||||
// if (!iterator1.hasNext()) {
|
||||
// continue label68;
|
||||
// }
|
||||
//
|
||||
// Map.Entry<String, Object> next = (Map.Entry)iterator1.next();
|
||||
// JSONObject value = (JSONObject)next.getValue();
|
||||
// types = value.get("type");
|
||||
// isMatch = value.get("isMatch");
|
||||
// } while(types == null);
|
||||
//
|
||||
// Pattern pattern = Pattern.compile("\"([^\"]+)\"");
|
||||
// Matcher matcher = pattern.matcher(types.toString());
|
||||
//
|
||||
// while(matcher.find()) {
|
||||
// String type = matcher.group(1);
|
||||
// Iterator var14 = platformData.keySet().iterator();
|
||||
//
|
||||
// while(var14.hasNext()) {
|
||||
// String s = (String)var14.next();
|
||||
// exchange.bind(new VideoQueue(platform + "-" + s, "true".equals(isMatch)), type);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// receiveVideo = new ArrayBlockingQueue(1024);
|
||||
//
|
||||
// try {
|
||||
// Video video1 = new Video();
|
||||
// video1.setVideoType(List.of(VideoType.SAD, VideoType.HAPPY));
|
||||
// video1.setMessage("hello");
|
||||
// sendVideo(video1);
|
||||
// Object videoMsg = receiveVideo.poll(5L, TimeUnit.SECONDS);
|
||||
// if (videoMsg != null && videoMsg instanceof Video) {
|
||||
// Video video = (Video)videoMsg;
|
||||
// iterator1 = video.getVideoType().iterator();
|
||||
//
|
||||
// while(iterator1.hasNext()) {
|
||||
// VideoType videoType = (VideoType)iterator1.next();
|
||||
// exchange.publish(videoType.toString(), video.getMessage());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// System.out.println(exchange.getBindings());
|
||||
// } catch (InterruptedException var17) {
|
||||
// throw new RuntimeException(var17);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
package org.example.core.guard;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.example.core.VideoType;
|
||||
import org.example.core.exchange.Exchange;
|
||||
import org.example.plugin.GuardPlugin;
|
||||
import org.example.pojo.Video;
|
||||
import org.example.pojo.VideoQueue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author welsir
|
||||
* @Date 2023/9/4 22:10
|
||||
*/
|
||||
public class VideoPushGuard extends GuardPlugin {
|
||||
|
||||
private static Exchange exchange;
|
||||
private static String PATH = "config/Account/account.json";
|
||||
private static BlockingQueue<Object> receiveVideo;
|
||||
|
||||
public VideoPushGuard(String module, String pluginName, List<String> needPlugins, boolean isAutoStart) {
|
||||
super(module, pluginName, needPlugins, isAutoStart);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean init() {
|
||||
// exchange = new Exchange();
|
||||
// try {
|
||||
// String jsonData = Files.readString(Path.of(PATH));
|
||||
// JSONObject jsonObject = JSON.parseObject(jsonData);
|
||||
//
|
||||
// for (Map.Entry<String, Object> platformEntry : jsonObject.entrySet()) {
|
||||
// String platform = platformEntry.getKey();
|
||||
// JSONObject platformData = (JSONObject) platformEntry.getValue();
|
||||
//
|
||||
// System.out.println("Platform: " + platform);
|
||||
// System.out.println("platformData: " + platformData);
|
||||
//
|
||||
// String types = getStringValueOrDefault(platformData, "type", "");
|
||||
// boolean isMatch = getBooleanValueOrDefault(platformData, "isMatch", false);
|
||||
//
|
||||
// Pattern pattern = Pattern.compile("\"([^\"]+)\"");
|
||||
// Matcher matcher = pattern.matcher(types);
|
||||
//
|
||||
// while (matcher.find()) {
|
||||
// String type = matcher.group(1);
|
||||
// for (String queueName : platformData.keySet()) {
|
||||
// exchange.bind(new VideoQueue(platform + "-" + queueName, isMatch), type);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// receiveVideo = new ArrayBlockingQueue<>(1024);
|
||||
return true;
|
||||
// } catch (IOException e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
// try {
|
||||
// Object videoMsg = receiveVideo.poll(5, TimeUnit.SECONDS);
|
||||
// if (videoMsg instanceof Video) {
|
||||
// Video video = (Video)videoMsg;
|
||||
// Iterator<VideoType> iterator = video.getVideoType().iterator();
|
||||
// while(iterator.hasNext()) {
|
||||
// VideoType videoType = iterator.next();
|
||||
// exchange.publish(videoType.toString(), video.getMessage());
|
||||
// }
|
||||
// }
|
||||
// } catch (InterruptedException e) {
|
||||
// throw new RuntimeException(e);
|
||||
// }
|
||||
}
|
||||
|
||||
public void sendVideo(Object msg) {
|
||||
receiveVideo.offer(msg);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
exchange = new Exchange();
|
||||
try {
|
||||
String jsonData = Files.readString(Path.of(PATH));
|
||||
JSONObject jsonObject = JSON.parseObject(jsonData);
|
||||
|
||||
for (Map.Entry<String, Object> platformEntry : jsonObject.entrySet()) {
|
||||
String platform = platformEntry.getKey();
|
||||
JSONObject platformData = (JSONObject) platformEntry.getValue();
|
||||
|
||||
System.out.println("Platform: " + platform);
|
||||
System.out.println("platformData: " + platformData);
|
||||
|
||||
String types = getStringValueOrDefault(platformData, "type", "");
|
||||
boolean isMatch = getBooleanValueOrDefault(platformData, "isMatch", false);
|
||||
|
||||
Pattern pattern = Pattern.compile("\"([^\"]+)\"");
|
||||
Matcher matcher = pattern.matcher(types);
|
||||
|
||||
while (matcher.find()) {
|
||||
String type = matcher.group(1);
|
||||
for (String queueName : platformData.keySet()) {
|
||||
exchange.bind(new VideoQueue(platform + "-" + queueName, isMatch), type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
receiveVideo = new ArrayBlockingQueue<>(1024);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
private static String getStringValueOrDefault(JSONObject jsonObject, String key, String defaultValue) {
|
||||
Object value = jsonObject.get(key);
|
||||
return value != null ? value.toString() : defaultValue;
|
||||
}
|
||||
|
||||
private static boolean getBooleanValueOrDefault(JSONObject jsonObject, String key, boolean defaultValue) {
|
||||
Object value = jsonObject.get(key);
|
||||
return value != null ? (boolean) value : defaultValue;
|
||||
}
|
||||
}
|
||||
@@ -30,7 +30,7 @@ public class VideoQueue {
|
||||
|
||||
public VideoQueue(String name, boolean isStrongMatch) {
|
||||
this.name = name;
|
||||
this.messages = new ArrayList();
|
||||
this.messages = new ArrayList<>();
|
||||
this.isStrongMatch = isStrongMatch;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,11 @@ public class PluginName {
|
||||
//Barrage
|
||||
public static final String BARRAGE_FILE_PLUGIN= "BarrageFileListen";
|
||||
|
||||
//Account
|
||||
public static final String VIDEO_PUSH_PLUGIN = "VideoPush";
|
||||
|
||||
|
||||
|
||||
public static final String LIVE_CONFIG_PLUGIN= "LiveConfig";
|
||||
public static final String LIVE_MANAGER_PLUGIN= "LiveDownLoadManager";
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package org.example.controller;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author welsir
|
||||
* @Date 2023/9/7 17:49
|
||||
*/
|
||||
public class VideoPushController {
|
||||
|
||||
}
|
||||
@@ -22,8 +22,6 @@ import java.util.List;
|
||||
//TODO 待重构
|
||||
public class HotModuleApi {
|
||||
|
||||
|
||||
|
||||
public static HotModuleList getDouyuAllHotModule(){
|
||||
return new DouyuHotModuleLoadTask(new DouyuHotModuleConfig()).start();
|
||||
}
|
||||
|
||||
-1
@@ -17,7 +17,6 @@ public class DouyuHotModuleLoadTask extends HotModuleLoadTask<HotModuleList> {
|
||||
|
||||
public DouyuHotModuleLoadTask(DouyuHotModuleConfig loadConfig) {
|
||||
super(loadConfig);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"data":[
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694233199000,
|
||||
"mid":"5658479E",
|
||||
"content":"假如命都没了,是不是狗也已经无所谓了"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694233152000,
|
||||
"mid":"2F6CEA30",
|
||||
"content":"溜了溜了,再不溜,命没了"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232561000,
|
||||
"mid":"F17AD68D",
|
||||
"content":"吃饭咯"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232556000,
|
||||
"mid":"D1252A3A",
|
||||
"content":"溜了[dog]"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232522000,
|
||||
"mid":"B2044534",
|
||||
"content":"那几个算纯赚了[dog]"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232499000,
|
||||
"mid":"628892D3",
|
||||
"content":"但是她一个就回本[dog]"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232413000,
|
||||
"mid":"3787D64C",
|
||||
"content":"她一个盒子顶你不知道了几个了"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232356000,
|
||||
"mid":"E6CB38B2",
|
||||
"content":"你不如森晚"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232284000,
|
||||
"mid":"BEB58DAF",
|
||||
"content":"两个极端"
|
||||
},
|
||||
{
|
||||
"timeIndex":0,
|
||||
"timeReal":1694232146000,
|
||||
"mid":"C6D18502",
|
||||
"content":"[爱]"
|
||||
}
|
||||
],
|
||||
"updateTime":"2023-09-09 12:40:15"
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"data":{
|
||||
"task":[
|
||||
{
|
||||
"taskByteStream":"rO0ABXNyACxvcmcuZXhhbXBsZS5jb3JlLnRhc2tjZW50ZXIudGFzay5SZXB0aWxlVGFza+61Zzf94WEnAgAGTAAHZW5kVGltZXQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACGxvYWRUYXNrdAAkTG9yZy9leGFtcGxlL2NvcmUvbG9hZHRhc2svTG9hZFRhc2s7TAAHcmVxdWVzdHQANExvcmcvZXhhbXBsZS9jb3JlL3Rhc2tjZW50ZXIvcmVxdWVzdC9SZXB0aWxlUmVxdWVzdDtMAAlzdGFydFRpbWVxAH4AAUwABnRhc2tJZHEAfgABTAAEdHlwZXQALUxvcmcvZXhhbXBsZS9jb3JlL3Rhc2tjZW50ZXIvdGFzay9UYXNrU3RhdHVzO3hwdAADbmlsc3IAPG9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkdGFzay5CaWxpYmlsaUxpdmVPbmxpbmVMb2FkVGFza0FPZu3db77SAgAAeHIANG9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkdGFzay5MaXZlT25saW5lTG9hZFRhc2t7p9n3gx22bQIAAHhyAChvcmcuZXhhbXBsZS5jb3JlLmxvYWR0YXNrLkNvbW1vbkxvYWRUYXNrgsGE0jqnYxYCAAFMAApsb2FkQ29uZmlndAAoTG9yZy9leGFtcGxlL2NvcmUvbG9hZGNvbmZpZy9Mb2FkQ29uZmlnO3hwc3IAPG9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkY29uZmlnLkJpbGliaWxpTGl2ZU9ubGluZUNvbmZpZzGoSPZj3vmnAgAAeHIAMm9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkY29uZmlnLkxvYWRMaXZlQ29uZmlnSY1xRYrAsVYCAAVaAAxjb252ZXJ0VG9NcDRaABFzaG93RG93bmxvYWRUYWJsZUwACWxpdmVyTmFtZXEAfgABTAAGcm9vbUlkcQB+AAFMAAhyb29tTmFtZXEAfgABeHIAM29yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkY29uZmlnLkxvYWRWaWRlb0NvbmZpZ3kpnLXoPhmNAgAESQAHY2xhcml0eUwACHBsYXRmb3JtcQB+AAFMAAl2aWRlb05hbWVxAH4AAUwACXZpZGVvUGF0aHEAfgABeHIAJm9yZy5leGFtcGxlLmNvcmUubG9hZGNvbmZpZy5Mb2FkQ29uZmlncA3DW3/AuVkCAAdMAAZPcmlnaW5xAH4AAUwAB1JlZmVyZXJxAH4AAUwACVVzZXJBZ2VudHEAfgABTAAGY29va2lldAAPTGphdmEvdXRpbC9NYXA7TAAGaGVhZGVycQB+ABBMAAlzdGFydFRpbWVxAH4AAUwAA3VybHEAfgABeHB0ABlodHRwczovL2xpdmUuYmlsaWJpbGkuY29tdAAaaHR0cHM6Ly9saXZlLmJpbGliaWxpLmNvbS90AHNNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTIuMC40NTE1LjEzMSBTYWZhcmkvNTM3LjM2cHB0ABMyMDIzLTA5LTA5IDEyOjQwOjE1cAAAD6B0AAhiaWxpYmlsaXQAKuS4jeacn+iAjOmBhy3po57puJ/lhqBfMzAyMzY0OTVfMjAyMy0wOS0wOXQAIy5cY29uZmlnXExpdmVSZWNvcmRcb25saW5lXGJpbGliaWxpAQF0ABbkuI3mnJ/ogIzpgYct6aOe6bif5YagdAAIMzAyMzY0OTV0AB/ov5vmnaXmiaMx77yM6aKG5Y+W5LiA5Liq5aWz5Y+Lc3IAMm9yZy5leGFtcGxlLmNvcmUudGFza2NlbnRlci5yZXF1ZXN0LlJlcHRpbGVSZXF1ZXN0lLxjHBQ1M0sCAARMAAhjYWxsYmFja3QAG0xvcmcvZXhhbXBsZS9jb3JlL0NhbGxiYWNrO0wADGNyZWVwZXJHcm91cHEAfgABTAALY3JlZXBlck5hbWVxAH4AAUwABXBhcmFtdAASTGphdmEvbGFuZy9PYmplY3Q7eHBzcgAhamF2YS5sYW5nLmludm9rZS5TZXJpYWxpemVkTGFtYmRhb2HQlCwpNoUCAApJAA5pbXBsTWV0aG9kS2luZFsADGNhcHR1cmVkQXJnc3QAE1tMamF2YS9sYW5nL09iamVjdDtMAA5jYXB0dXJpbmdDbGFzc3QAEUxqYXZhL2xhbmcvQ2xhc3M7TAAYZnVuY3Rpb25hbEludGVyZmFjZUNsYXNzcQB+AAFMAB1mdW5jdGlvbmFsSW50ZXJmYWNlTWV0aG9kTmFtZXEAfgABTAAiZnVuY3Rpb25hbEludGVyZmFjZU1ldGhvZFNpZ25hdHVyZXEAfgABTAAJaW1wbENsYXNzcQB+AAFMAA5pbXBsTWV0aG9kTmFtZXEAfgABTAATaW1wbE1ldGhvZFNpZ25hdHVyZXEAfgABTAAWaW5zdGFudGlhdGVkTWV0aG9kVHlwZXEAfgABeHAAAAAGdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAAHZyAC1vcmcuZXhhbXBsZS5jb3JlLnJlY29tbWVuZC5IZWF0UmVjb21tZW5kYXRpb25B6JuGaBmp+gIAAUwAFHBsYXRmb3JtRm9sbG93RG9nTWFwcQB+ABB4cgAfb3JnLmV4YW1wbGUucGx1Z2luLkNvbW1vblBsdWdpboScLxL3aHXZAgAFWgALaXNBdXRvU3RhcnRMAAZsb2dnZXJ0ABJMb3JnL3NsZjRqL0xvZ2dlcjtMAAZtb2R1bGVxAH4AAUwAC25lZWRQbHVnaW5zdAAQTGphdmEvdXRpbC9MaXN0O0wACnBsdWdpbk5hbWVxAH4AAXhwdAAZb3JnL2V4YW1wbGUvY29yZS9DYWxsYmFja3QACGNhbGxiYWNrdAAVKExqYXZhL2xhbmcvT2JqZWN0OylWdAAtb3JnL2V4YW1wbGUvY29yZS9yZWNvbW1lbmQvSGVhdFJlY29tbWVuZGF0aW9udAAdbGFtYmRhJGhhbmRsZUV2ZW50JDc5NjI0Mjc1JDFxAH4ALXEAfgAtdAANYmlsaWJpbGlfbGl2ZXBzcgAib3JnLmV4YW1wbGUuYmVhbi5saXZlLkJpbGlCaWxpTGl2ZeTqA+CQgXyAAgAHTAAHYXJlYV9pZHEAfgABTAAJYXJlYV9uYW1lcQB+AAFMAAhncm91cF9pZHEAfgABTAAOcGFyZW50X2FyZWFfaWRxAH4AAUwAEHBhcmVudF9hcmVhX25hbWVxAH4AAUwACnNlc3Npb25faWRxAH4AAUwAA3VpZHEAfgABeHIAFW9yZy5leGFtcGxlLmJlYW4uTGl2ZWtWV4yhuR7bAgAISQAKd2F0Y2hlck51bUwAC2Rlc2NyaXB0aW9ucQB+AAFMAAZsaXZlSWRxAH4AAUwACGxpdmVOYW1lcQB+AAFMAAVsaXZlcnEAfgABTAAIbW9kdWxlSWRxAH4AAUwACm1vZHVsZU5hbWVxAH4AAUwACHBsYXRmb3JtcQB+AAF4cAAOcYlxAH4AG3EAfgAacQB+ABtxAH4AGXQAAzc0MHQACeiBiuWkqeWupHEAfgAWcHB0AAcxMDAwMjY4dAABMXQABuWoseS5kHQARTJiZDg4NjcxMDI2YWU5MjIwMWM0YmU2YTBmNjRmYmY3XzY5QkY3QjUzLUY0QUUtNDNGNC1CQkU3LTUxOTE5QjFFMjZERHQAEDM0OTQzNzMwMTg4MzE2NDBxAH4ABnQANmxpdmVfb25saW5lX2JpbGliaWxpX+S4jeacn+iAjOmBhy3po57puJ/lhqBfMjAyMy0wOS0wOX5yACtvcmcuZXhhbXBsZS5jb3JlLnRhc2tjZW50ZXIudGFzay5UYXNrU3RhdHVzAAAAAAAAAAASAAB4cgAOamF2YS5sYW5nLkVudW0AAAAAAAAAABIAAHhwdAAHQWxyZWFkeQ==",
|
||||
"reptileTask":{
|
||||
"request":{
|
||||
"creeperGroup":"bilibili_live",
|
||||
"param":{
|
||||
"liver":"不期而遇-飞鸟冠",
|
||||
"moduleName":"聊天室",
|
||||
"description":"进来扣1,领取一个女友",
|
||||
"session_id":"2bd88671026ae92201c4be6a0f64fbf7_69BF7B53-F4AE-43F4-BBE7-51919B1E26DD",
|
||||
"liveName":"进来扣1,领取一个女友",
|
||||
"liveId":"30236495",
|
||||
"platform":"bilibili",
|
||||
"uid":"3494373018831640",
|
||||
"group_id":"1000268",
|
||||
"watcherNum":946569,
|
||||
"parent_area_name":"娱乐",
|
||||
"moduleId":"740",
|
||||
"parent_area_id":"1"
|
||||
},
|
||||
"callback":{}
|
||||
},
|
||||
"loadTask":{
|
||||
"running":false,
|
||||
"cacheSize":0
|
||||
},
|
||||
"startTime":"nil",
|
||||
"endTime":"nil",
|
||||
"type":"already",
|
||||
"taskId":"live_online_bilibili_不期而遇-飞鸟冠_2023-09-09"
|
||||
},
|
||||
"startTime":"2023-09-09 12:40:15",
|
||||
"endTime":"nil",
|
||||
"type":"running",
|
||||
"taskId":"live_online_bilibili_不期而遇-飞鸟冠_2023-09-09"
|
||||
},
|
||||
{
|
||||
"taskByteStream":"rO0ABXNyACxvcmcuZXhhbXBsZS5jb3JlLnRhc2tjZW50ZXIudGFzay5SZXB0aWxlVGFza+61Zzf94WEnAgAGTAAHZW5kVGltZXQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACGxvYWRUYXNrdAAkTG9yZy9leGFtcGxlL2NvcmUvbG9hZHRhc2svTG9hZFRhc2s7TAAHcmVxdWVzdHQANExvcmcvZXhhbXBsZS9jb3JlL3Rhc2tjZW50ZXIvcmVxdWVzdC9SZXB0aWxlUmVxdWVzdDtMAAlzdGFydFRpbWVxAH4AAUwABnRhc2tJZHEAfgABTAAEdHlwZXQALUxvcmcvZXhhbXBsZS9jb3JlL3Rhc2tjZW50ZXIvdGFzay9UYXNrU3RhdHVzO3hwdAADbmlsc3IAPW9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkdGFzay5CaWxpYmlsaUxpdmVCYXJyYWdlTG9hZFRhc2v8Xz1lr5OzEwIAAHhyACdvcmcuZXhhbXBsZS5jb3JlLmxvYWR0YXNrLkFTeW5jTG9hZFRhc2u06u51X10lLAIAAUwABnJlc3VsdHQAEkxqYXZhL2xhbmcvT2JqZWN0O3hyAChvcmcuZXhhbXBsZS5jb3JlLmxvYWR0YXNrLkNvbW1vbkxvYWRUYXNrgsGE0jqnYxYCAAFMAApsb2FkQ29uZmlndAAoTG9yZy9leGFtcGxlL2NvcmUvbG9hZGNvbmZpZy9Mb2FkQ29uZmlnO3hwc3IAQW9yZy5leGFtcGxlLmNvcmUuY3JlZXBlci5sb2FkY29uZmlnLkJpbGliaWxpTGl2ZUxvYWRCYXJyYWdlQ29uZmlniX3Axc3lyTACAAFMAAZyb29tSWRxAH4AAXhyADVvcmcuZXhhbXBsZS5jb3JlLmNyZWVwZXIubG9hZGNvbmZpZy5Mb2FkQmFycmFnZUNvbmZpZyL9R0jyNtXkAgADTAAGYWN0aW9ucQB+AAFMAAphbmNob3JOYW1lcQB+AAFMAAhwbGF0Zm9ybXEAfgABeHIAJm9yZy5leGFtcGxlLmNvcmUubG9hZGNvbmZpZy5Mb2FkQ29uZmlncA3DW3/AuVkCAAdMAAZPcmlnaW5xAH4AAUwAB1JlZmVyZXJxAH4AAUwACVVzZXJBZ2VudHEAfgABTAAGY29va2lldAAPTGphdmEvdXRpbC9NYXA7TAAGaGVhZGVycQB+ABBMAAlzdGFydFRpbWVxAH4AAUwAA3VybHEAfgABeHBwcHBwcHQAEzIwMjMtMDktMDkgMTI6NDA6MTV0ADZodHRwczovL2FwaS5saXZlLmJpbGliaWxpLmNvbS9hamF4L21zZz9yb29taWQ9MzAyMzY0OTV0AARsaXZldAAW5LiN5pyf6ICM6YGHLemjnum4n+WGoHQACGJpbGliaWxpdAAIMzAyMzY0OTVwc3IAMm9yZy5leGFtcGxlLmNvcmUudGFza2NlbnRlci5yZXF1ZXN0LlJlcHRpbGVSZXF1ZXN0lLxjHBQ1M0sCAARMAAhjYWxsYmFja3QAG0xvcmcvZXhhbXBsZS9jb3JlL0NhbGxiYWNrO0wADGNyZWVwZXJHcm91cHEAfgABTAALY3JlZXBlck5hbWVxAH4AAUwABXBhcmFtcQB+AAl4cHNyACFqYXZhLmxhbmcuaW52b2tlLlNlcmlhbGl6ZWRMYW1iZGFvYdCULCk2hQIACkkADmltcGxNZXRob2RLaW5kWwAMY2FwdHVyZWRBcmdzdAATW0xqYXZhL2xhbmcvT2JqZWN0O0wADmNhcHR1cmluZ0NsYXNzdAARTGphdmEvbGFuZy9DbGFzcztMABhmdW5jdGlvbmFsSW50ZXJmYWNlQ2xhc3NxAH4AAUwAHWZ1bmN0aW9uYWxJbnRlcmZhY2VNZXRob2ROYW1lcQB+AAFMACJmdW5jdGlvbmFsSW50ZXJmYWNlTWV0aG9kU2lnbmF0dXJlcQB+AAFMAAlpbXBsQ2xhc3NxAH4AAUwADmltcGxNZXRob2ROYW1lcQB+AAFMABNpbXBsTWV0aG9kU2lnbmF0dXJlcQB+AAFMABZpbnN0YW50aWF0ZWRNZXRob2RUeXBlcQB+AAF4cAAAAAZ1cgATW0xqYXZhLmxhbmcuT2JqZWN0O5DOWJ8QcylsAgAAeHAAAAAAdnIALW9yZy5leGFtcGxlLmNvcmUucmVjb21tZW5kLkhlYXRSZWNvbW1lbmRhdGlvbkHom4ZoGan6AgABTAAUcGxhdGZvcm1Gb2xsb3dEb2dNYXBxAH4AEHhyAB9vcmcuZXhhbXBsZS5wbHVnaW4uQ29tbW9uUGx1Z2luhJwvEvdoddkCAAVaAAtpc0F1dG9TdGFydEwABmxvZ2dlcnQAEkxvcmcvc2xmNGovTG9nZ2VyO0wABm1vZHVsZXEAfgABTAALbmVlZFBsdWdpbnN0ABBMamF2YS91dGlsL0xpc3Q7TAAKcGx1Z2luTmFtZXEAfgABeHB0ABlvcmcvZXhhbXBsZS9jb3JlL0NhbGxiYWNrdAAIY2FsbGJhY2t0ABUoTGphdmEvbGFuZy9PYmplY3Q7KVZ0AC1vcmcvZXhhbXBsZS9jb3JlL3JlY29tbWVuZC9IZWF0UmVjb21tZW5kYXRpb250AB1sYW1iZGEkaGFuZGxlRXZlbnQkNzk2MjQyNzUkMnEAfgAocQB+ACh0ABViaWxpYmlsaV9saXZlX2JhcnJhZ2Vwc3IAIm9yZy5leGFtcGxlLmJlYW4ubGl2ZS5CaWxpQmlsaUxpdmXk6gPgkIF8gAIAB0wAB2FyZWFfaWRxAH4AAUwACWFyZWFfbmFtZXEAfgABTAAIZ3JvdXBfaWRxAH4AAUwADnBhcmVudF9hcmVhX2lkcQB+AAFMABBwYXJlbnRfYXJlYV9uYW1lcQB+AAFMAApzZXNzaW9uX2lkcQB+AAFMAAN1aWRxAH4AAXhyABVvcmcuZXhhbXBsZS5iZWFuLkxpdmVrVleMobke2wIACEkACndhdGNoZXJOdW1MAAtkZXNjcmlwdGlvbnEAfgABTAAGbGl2ZUlkcQB+AAFMAAhsaXZlTmFtZXEAfgABTAAFbGl2ZXJxAH4AAUwACG1vZHVsZUlkcQB+AAFMAAptb2R1bGVOYW1lcQB+AAFMAAhwbGF0Zm9ybXEAfgABeHAADnGJdAAf6L+b5p2l5omjMe+8jOmihuWPluS4gOS4quWls+WPi3EAfgAXcQB+AC9xAH4AFXQAAzc0MHQACeiBiuWkqeWupHEAfgAWcHB0AAcxMDAwMjY4dAABMXQABuWoseS5kHQARTJiZDg4NjcxMDI2YWU5MjIwMWM0YmU2YTBmNjRmYmY3XzY5QkY3QjUzLUY0QUUtNDNGNC1CQkU3LTUxOTE5QjFFMjZERHQAEDM0OTQzNzMwMTg4MzE2NDBxAH4ABnQAN2xpdmVfYmFycmFnZV9iaWxpYmlsaV/kuI3mnJ/ogIzpgYct6aOe6bif5YagXzIwMjMtMDktMDl+cgArb3JnLmV4YW1wbGUuY29yZS50YXNrY2VudGVyLnRhc2suVGFza1N0YXR1cwAAAAAAAAAAEgAAeHIADmphdmEubGFuZy5FbnVtAAAAAAAAAAASAAB4cHQAB0FscmVhZHk=",
|
||||
"reptileTask":{
|
||||
"request":{
|
||||
"creeperGroup":"bilibili_live_barrage",
|
||||
"param":{
|
||||
"liver":"不期而遇-飞鸟冠",
|
||||
"moduleName":"聊天室",
|
||||
"description":"进来扣1,领取一个女友",
|
||||
"session_id":"2bd88671026ae92201c4be6a0f64fbf7_69BF7B53-F4AE-43F4-BBE7-51919B1E26DD",
|
||||
"liveName":"进来扣1,领取一个女友",
|
||||
"liveId":"30236495",
|
||||
"platform":"bilibili",
|
||||
"uid":"3494373018831640",
|
||||
"group_id":"1000268",
|
||||
"watcherNum":946569,
|
||||
"parent_area_name":"娱乐",
|
||||
"moduleId":"740",
|
||||
"parent_area_id":"1"
|
||||
},
|
||||
"callback":{}
|
||||
},
|
||||
"loadTask":{
|
||||
"running":false,
|
||||
"cacheSize":0
|
||||
},
|
||||
"startTime":"nil",
|
||||
"endTime":"nil",
|
||||
"type":"already",
|
||||
"taskId":"live_barrage_bilibili_不期而遇-飞鸟冠_2023-09-09"
|
||||
},
|
||||
"startTime":"2023-09-09 12:40:15",
|
||||
"endTime":"nil",
|
||||
"type":"running",
|
||||
"taskId":"live_barrage_bilibili_不期而遇-飞鸟冠_2023-09-09"
|
||||
}
|
||||
]
|
||||
},
|
||||
"updateTime":"2023-09-09 12:40:34"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"data":{
|
||||
"LiveDownload":{
|
||||
"showDownloadTable":false
|
||||
}
|
||||
},
|
||||
"updateTime":"2023-09-09 12:40:14"
|
||||
}
|
||||
Binary file not shown.
@@ -24,5 +24,5 @@
|
||||
"HotRecommendation":true
|
||||
}
|
||||
},
|
||||
"updateTime":"2023-09-07 19:16:14"
|
||||
"updateTime":"2023-09-09 12:40:34"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: 视切片推送通道插件
|
||||
date: 2023-09-08 02:09:42
|
||||
permalink: /pages/ce57b2/
|
||||
---
|
||||
+6869
-6889
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user