update
This commit is contained in:
88
src/main/java/com/yutou/bilibili/services/SystemService.java
Normal file
88
src/main/java/com/yutou/bilibili/services/SystemService.java
Normal file
@@ -0,0 +1,88 @@
|
||||
package com.yutou.bilibili.services;
|
||||
|
||||
import com.yutou.biliapi.api.LiveApi;
|
||||
import com.yutou.biliapi.bean.live.LiveRoomConfig;
|
||||
import com.yutou.biliapi.bean.live.LiveRoomInfo;
|
||||
import com.yutou.biliapi.bean.live.database.LiveConfigDatabaseBean;
|
||||
import com.yutou.biliapi.databases.BiliLiveConfigDatabase;
|
||||
import com.yutou.biliapi.net.BiliLiveNetApiManager;
|
||||
import com.yutou.biliapi.net.WebSocketManager;
|
||||
import com.yutou.bilibili.databases.SystemConfigDatabases;
|
||||
import com.yutou.bilibili.datas.SystemConfigDatabaseBean;
|
||||
import com.yutou.common.okhttp.HttpBody;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import retrofit2.Response;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Service
|
||||
public class SystemService {
|
||||
SystemConfigDatabases databases = new SystemConfigDatabases();
|
||||
private ScheduledExecutorService timer;
|
||||
private ScheduledFuture<?> scheduled;
|
||||
BiliLiveConfigDatabase liveConfigDatabase = new BiliLiveConfigDatabase();
|
||||
|
||||
public long getLoopTimer() {
|
||||
SystemConfigDatabaseBean config = databases.getConfig();
|
||||
if (config == null) {
|
||||
return databases.getDefaultConfig().getTimerLoop();
|
||||
}
|
||||
return config.getTimerLoop();
|
||||
}
|
||||
|
||||
public void start() {
|
||||
if (timer == null) {
|
||||
timer = Executors.newScheduledThreadPool(1);
|
||||
}
|
||||
System.out.println("执行任务");
|
||||
if (scheduled != null) {
|
||||
scheduled.cancel(true);
|
||||
}
|
||||
scheduled = timer.scheduleAtFixedRate(() -> {
|
||||
List<LiveConfigDatabaseBean> list = liveConfigDatabase.getAllConfig();
|
||||
for (LiveConfigDatabaseBean bean : list) {
|
||||
if (bean.isRecordDanmu() && bean.checkRecordDanmuTime()) {
|
||||
recordDanmu(bean);
|
||||
}
|
||||
if (bean.isRecordLive() && bean.checkRecordLiveTime()) {
|
||||
recordVideo(bean);
|
||||
}
|
||||
}
|
||||
}, 0, getLoopTimer(), TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
// 录制弹幕
|
||||
private void recordDanmu(LiveConfigDatabaseBean bean) {
|
||||
LiveRoomConfig config = new LiveRoomConfig();
|
||||
config.setLoginUid(bean.getRecordUid());
|
||||
config.setRoomId(bean.getRoomId());
|
||||
config.setAnchorName(bean.getAnchorName());
|
||||
config.setLogin(StringUtils.hasText(bean.getRecordUid()));
|
||||
WebSocketManager.getInstance().addRoom(config);
|
||||
}
|
||||
|
||||
// 录制视频
|
||||
private void recordVideo(LiveConfigDatabaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
SystemService service = new SystemService();
|
||||
System.out.println(new Date());
|
||||
service.start();
|
||||
Thread.sleep(15000);
|
||||
System.out.println(new Date());
|
||||
service.start();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user