This commit is contained in:
2024-10-17 16:28:54 +08:00
parent 91fe70c1b8
commit ac7f076721
194 changed files with 2041 additions and 9001 deletions

View 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();
}
}