完善web一些功能
This commit is contained in:
@@ -2,9 +2,11 @@ package com.yutou.bilibili.Controllers;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yutou.biliapi.bean.live.FollowLive;
|
||||
import com.yutou.biliapi.bean.live.database.LiveConfigDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.LoginUserDatabaseBean;
|
||||
import com.yutou.biliapi.bean.user.UserFollowingsBean;
|
||||
import com.yutou.bilibili.Tools.DateFormatUtils;
|
||||
import com.yutou.bilibili.Tools.Tools;
|
||||
import com.yutou.bilibili.datas.ResultData;
|
||||
import com.yutou.bilibili.datas.ReturnCode;
|
||||
@@ -17,13 +19,13 @@ import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/live/config/")
|
||||
@@ -46,6 +48,17 @@ public class LiveConfigController {
|
||||
return ResultData.success(bean, bean.getTotal());
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping("followLive")
|
||||
public JSONObject getFollowLive(String userId) {
|
||||
List<FollowLive.Room> followLive = userService.getUserFollowLive(userId);
|
||||
if (followLive == null) {
|
||||
return ResultData.fail(ReturnCode.RC999);
|
||||
}
|
||||
followLive.forEach(item -> item.setLiveTime(DateFormatUtils.getInstance().convertSeconds(Long.parseLong(item.getLiveTime()))));
|
||||
return ResultData.success(followLive, followLive.size());
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping("follow/add")
|
||||
public JSONObject addFollow(String uid, String anchorId) {
|
||||
@@ -79,7 +92,21 @@ public class LiveConfigController {
|
||||
follow.setUname(jsonObject.getString("uname"));
|
||||
return follow;
|
||||
}).toList();
|
||||
return ResultData.success(userService.followAll(uid,list));
|
||||
return ResultData.success(userService.followAll(uid, list));
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping("follow/roomId/addList")
|
||||
public JSONObject addFollowListToRoomId(String array) {
|
||||
if (!StringUtils.hasText(array)) {
|
||||
return ResultData.fail(ReturnCode.RC500);
|
||||
}
|
||||
JSONArray jsonArray = JSONArray.parseArray(array);
|
||||
List<LiveConfigDatabaseBean> list = jsonArray.stream().map(o -> {
|
||||
JSONObject jsonObject = (JSONObject) o;
|
||||
return configService.addConfig(jsonObject.getString("roomId"), new LiveConfigDatabaseBean());
|
||||
}).toList();
|
||||
return ResultData.success(list, list.size());
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@@ -110,6 +137,41 @@ public class LiveConfigController {
|
||||
return ResultData.success(ReturnCode.RC100);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "set/array", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public JSONObject addArrayConfig(@RequestBody JSONObject jsonObject) {
|
||||
LiveConfigDatabaseBean bean = jsonObject.getJSONObject("config").to(LiveConfigDatabaseBean.class);
|
||||
if (!bean.verifyLiveTimer()) {
|
||||
return ResultData.fail(ReturnCode.RC999.getCode(), "视频录制时间格式错误");
|
||||
}
|
||||
if (!bean.verifyDanmuTimer()) {
|
||||
return ResultData.fail(ReturnCode.RC999.getCode(), "弹幕录制时间格式错误");
|
||||
}
|
||||
JSONArray jsonArray = jsonObject.getJSONArray("array");
|
||||
List<LiveConfigDatabaseBean> list = jsonArray.stream().map(roomId -> configService.addConfig(roomId.toString(), bean)).toList();
|
||||
int countNull = list.stream().filter(Objects::isNull).toList().size();
|
||||
return ResultData.success("成功配置" + (list.size() - countNull) + "个直播间");
|
||||
}
|
||||
|
||||
@RequestMapping(value = "delete/array", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public JSONObject deleteArrayConfig(@RequestBody JSONArray jsonArray) {
|
||||
List<Boolean> list = jsonArray.stream().map(roomId -> configService.deleteConfig(roomId.toString())).toList();
|
||||
int countNull = list.stream().filter(it -> !it).toList().size();
|
||||
return ResultData.success("成功删除" + (list.size() - countNull) + "个直播间");
|
||||
}
|
||||
@RequestMapping(value = "delete/all", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public JSONObject deleteAllConfig() {
|
||||
for (LiveConfigDatabaseBean bean : configService.getAllConfig()) {
|
||||
configService.deleteConfig(bean.getRoomId());
|
||||
}
|
||||
if(configService.getAllConfig().isEmpty()) {
|
||||
return ResultData.success("成功删除");
|
||||
}else{
|
||||
return ResultData.fail(-1,"删除失败,剩余:"+configService.getAllConfig().size()+"个直播间");
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "set", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
|
||||
@@ -76,6 +76,17 @@ public class DateFormatUtils {
|
||||
Date time = parse(date, format);
|
||||
return format(time, format);
|
||||
}
|
||||
public String convertSeconds(long totalSeconds) {
|
||||
// 计算总小时数
|
||||
long hours = totalSeconds / 3600;
|
||||
// 剩余的秒数
|
||||
long remainingSecondsAfterHours = totalSeconds % 3600;
|
||||
// 计算分钟数
|
||||
long minutes = remainingSecondsAfterHours / 60;
|
||||
// 最后剩余的秒数
|
||||
long seconds = remainingSecondsAfterHours % 60;
|
||||
return String.format("%d小时%d分%d秒", hours, minutes, seconds);
|
||||
}
|
||||
public String formatMillis(long millis) {
|
||||
Duration duration = Duration.ofMillis(millis);
|
||||
int seconds = (int) (duration.getSeconds() % 60);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.yutou.bilibili.services;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yutou.biliapi.api.UserApi;
|
||||
import com.yutou.biliapi.bean.live.FollowLive;
|
||||
import com.yutou.biliapi.bean.live.SpiBean;
|
||||
import com.yutou.biliapi.bean.live.database.LiveConfigDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.LoginCookieDatabaseBean;
|
||||
@@ -9,7 +9,7 @@ import com.yutou.biliapi.bean.user.UserFollowingsBean;
|
||||
import com.yutou.biliapi.bean.user.UserHomeInfoBean;
|
||||
import com.yutou.biliapi.bean.user.UserInfoBean;
|
||||
import com.yutou.biliapi.databases.BiliBiliLoginDatabase;
|
||||
import com.yutou.biliapi.net.BiliCookieManager;
|
||||
import com.yutou.biliapi.net.BiliLiveNetApiManager;
|
||||
import com.yutou.biliapi.net.BiliUserNetApiManager;
|
||||
import com.yutou.biliapi.net.WebSignManager;
|
||||
import com.yutou.bilibili.datas.ResultData;
|
||||
@@ -34,6 +34,14 @@ public class LiveUserService {
|
||||
@Resource
|
||||
LiveConfigService configService;
|
||||
|
||||
public List<FollowLive.Room> getUserFollowLive(String userId) {
|
||||
try {
|
||||
FollowLive followLive = BiliLiveNetApiManager.getInstance().getApi(userId).getUserFollowLive(true, System.currentTimeMillis()).execute().body().getData();
|
||||
return followLive.getRooms();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
public UserFollowingsBean getUserFollowings(String userId, int page, int num) {
|
||||
LoginCookieDatabaseBean cookie = userLoginService.getCookie(userId);
|
||||
UserApi api = BiliUserNetApiManager.getInstance().getUserApi(cookie);
|
||||
|
||||
Reference in New Issue
Block a user