From 4d62a9f708c523d5b1eb75870f9ca238c9d0ea62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=B1=B3?= Date: Wed, 10 Jan 2024 23:49:06 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E6=88=BF=E9=97=B4=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E8=8E=B7=E5=8F=96=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLI/WebAppServices/Api/get_rooms.cs | 351 ++++++++++++++++++---------- CLI/WebAppServices/MessageBase.cs | 4 +- 2 files changed, 231 insertions(+), 124 deletions(-) diff --git a/CLI/WebAppServices/Api/get_rooms.cs b/CLI/WebAppServices/Api/get_rooms.cs index 7cf102699..492f3bfdf 100644 --- a/CLI/WebAppServices/Api/get_rooms.cs +++ b/CLI/WebAppServices/Api/get_rooms.cs @@ -1,5 +1,6 @@ using CLI.WebAppServices.Middleware; using Core.LogModule; +using Core.Network.Methods; using Core.RuntimeObject; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -29,96 +30,157 @@ public class AllCompleteRoomInformation : ControllerBase /// 获取所有配置中房间完整信息 /// /// + /// 分页后每页数量,非必填,默认或传0为全部 + /// 获取的页数,当分页数量不为0时有效 /// [HttpPost(Name = "AllCompleteRoomInformation")] - public ActionResult Post(PostCommonParameters commonParameters) + public ActionResult Post(PostCommonParameters commonParameters, [FromForm] int quantity = 0, [FromForm] int page = 0) { - List basicInfolist = new List(); - var roomlist = _Room.GetCardListDeepClone(); - foreach (var room in roomlist) + try { - BasicInfo basicInfo = new BasicInfo(); - basicInfo.userInfo = new() + Data basicInfolist = new Data(); + var roomlist = _Room.GetCardListDeepClone(); + basicInfolist.Total = roomlist.Count; + if (quantity == 0) { - IsAutoRec=room.Value.IsAutoRec, - Description=room.Value.Description, - IsRecDanmu=room.Value.IsRecDanmu, - IsRemind=room.Value.IsRemind, - Name=room.Value.Name, - Sex=room.Value.sex.Value, - Sign=room.Value.sign.Value, - UID=room.Value.UID - }; - basicInfo.roomInfo = new BasicInfo.RoomInfo() + foreach (var room in roomlist) + { + Data.BasicInfo basicInfo = new Data.BasicInfo(); + basicInfo.userInfo = new() + { + IsAutoRec = room.Value.IsAutoRec, + Description = room.Value.Description, + IsRecDanmu = room.Value.IsRecDanmu, + IsRemind = room.Value.IsRemind, + Name = room.Value.Name, + Sex = room.Value.sex.Value, + Sign = room.Value.sign.Value, + UID = room.Value.UID + }; + basicInfo.roomInfo = new Data.BasicInfo.RoomInfo() + { + AreaName = room.Value.area_v2_name.Value, + Attention = room.Value.attention.Value, + CoverFromUser = room.Value.cover_from_user.Value, + Face = room.Value.face.Value, + KeyFrame = room.Value.keyframe.Value, + LiveStatus = room.Value.live_status.Value == 1 ? true : false, + LiveTime = room.Value.live_time.Value, + RoomId = room.Value.RoomId, + ShortId = room.Value.short_id.Value, + tags = room.Value.tags.Value, + Title = room.Value.Title.Value, + Url = $"https://live.bilibili.com/{room.Value.RoomId}" + }; + basicInfo.taskStatus = new Data.BasicInfo.TaskStatus() + { + DownloadSize = room.Value.DownInfo.DownloadSize, + EndTime = room.Value.DownInfo.EndTime, + IsDownload = room.Value.DownInfo.IsDownload, + StartTime = room.Value.DownInfo.StartTime, + Title = room.Value.Title.Value, + Status = room.Value.DownInfo.Status, + }; + basicInfolist.basicInfolist.Add(basicInfo); + } + } + else { - AreaName=room.Value.area_v2_name.Value, - Attention=room.Value.attention.Value, - CoverFromUser=room.Value.cover_from_user.Value, - Face=room.Value.face.Value, - KeyFrame=room.Value.keyframe.Value, - LiveStatus=room.Value.live_status.Value==1?true:false, - LiveTime=room.Value.live_time.Value, - RoomId=room.Value.RoomId, - ShortId=room.Value.short_id.Value, - tags=room.Value.tags.Value, - Title=room.Value.Title.Value, - Url=$"https://live.bilibili.com/{room.Value.RoomId}" - }; - basicInfo.taskStatus = new BasicInfo.TaskStatus() - { - DownloadSize=room.Value.DownInfo.DownloadSize, - EndTime=room.Value.DownInfo.EndTime, - IsDownload=room.Value.DownInfo.IsDownload, - StartTime=room.Value.DownInfo.StartTime, - Title=room.Value.Title.Value, - Status=room.Value.DownInfo.Status, - }; - basicInfolist.Add(basicInfo); + for (int i = page * quantity - quantity; i < roomlist.Count && i < page * quantity + quantity; i++) + { + Data.BasicInfo basicInfo = new Data.BasicInfo(); + basicInfo.userInfo = new() + { + IsAutoRec = roomlist.ElementAt(i).Value.IsAutoRec, + Description = roomlist.ElementAt(i).Value.Description, + IsRecDanmu = roomlist.ElementAt(i).Value.IsRecDanmu, + IsRemind = roomlist.ElementAt(i).Value.IsRemind, + Name = roomlist.ElementAt(i).Value.Name, + Sex = roomlist.ElementAt(i).Value.sex.Value, + Sign = roomlist.ElementAt(i).Value.sign.Value, + UID = roomlist.ElementAt(i).Value.UID + }; + basicInfo.roomInfo = new Data.BasicInfo.RoomInfo() + { + AreaName = roomlist.ElementAt(i).Value.area_v2_name.Value, + Attention = roomlist.ElementAt(i).Value.attention.Value, + CoverFromUser = roomlist.ElementAt(i).Value.cover_from_user.Value, + Face = roomlist.ElementAt(i).Value.face.Value, + KeyFrame = roomlist.ElementAt(i).Value.keyframe.Value, + LiveStatus = roomlist.ElementAt(i).Value.live_status.Value == 1 ? true : false, + LiveTime = roomlist.ElementAt(i).Value.live_time.Value, + RoomId = roomlist.ElementAt(i).Value.RoomId, + ShortId = roomlist.ElementAt(i).Value.short_id.Value, + tags = roomlist.ElementAt(i).Value.tags.Value, + Title = roomlist.ElementAt(i).Value.Title.Value, + Url = $"https://live.bilibili.com/{roomlist.ElementAt(i).Value.RoomId}" + }; + basicInfo.taskStatus = new Data.BasicInfo.TaskStatus() + { + DownloadSize = roomlist.ElementAt(i).Value.DownInfo.DownloadSize, + EndTime = roomlist.ElementAt(i).Value.DownInfo.EndTime, + IsDownload = roomlist.ElementAt(i).Value.DownInfo.IsDownload, + StartTime = roomlist.ElementAt(i).Value.DownInfo.StartTime, + Title = roomlist.ElementAt(i).Value.Title.Value, + Status = roomlist.ElementAt(i).Value.DownInfo.Status, + }; + basicInfolist.basicInfolist.Add(basicInfo); + } + } + roomlist.Clear(); + roomlist = null; + return Content(MessageBase.Success(nameof(AllBasicRoomInformation), basicInfolist), "application/json"); } - roomlist.Clear(); - roomlist = null; - return Content(MessageBase.Success(nameof(AllBasicRoomInformation), basicInfolist), "application/json"); - } - public class BasicInfo - { - public UserInfo userInfo { get; set; } = new(); - public RoomInfo roomInfo { get; set; } = new(); - public TaskStatus taskStatus { get; set; } = new(); - public class UserInfo + catch (Exception) { - public string Name { get; set; } - public string Description { get; set; } - public long UID { get; set; } - public bool IsAutoRec { get; set; } - public bool IsRemind { get; set; } - public bool IsRecDanmu { get; set; } - public string Sex { get; set; } - public string Sign { get; set; } + return Content(MessageBase.Success(nameof(AllBasicRoomInformation), "", "请求错误", MessageBase.code.ParameterError), "application/json"); } - public class RoomInfo + } + public class Data + { + public int Total { get; set; } = 0; + public List basicInfolist { get; set; } = new(); + public class BasicInfo { - public long RoomId { get; set; } - public string Title { get; set; } - public int Attention { get; set; } - public long LiveTime { get; set; } - public bool LiveStatus { get; set; } - public int ShortId { get; set; } - public string AreaName { get; set; } - public string Face { get; set; } - public string tags { get; set; } - public string CoverFromUser { get; set; } - public string KeyFrame { get; set; } - public string Url { get; set; } + public UserInfo userInfo { get; set; } = new(); + public RoomInfo roomInfo { get; set; } = new(); + public TaskStatus taskStatus { get; set; } = new(); + public class UserInfo + { + public string Name { get; set; } + public string Description { get; set; } + public long UID { get; set; } + public bool IsAutoRec { get; set; } + public bool IsRemind { get; set; } + public bool IsRecDanmu { get; set; } + public string Sex { get; set; } + public string Sign { get; set; } + } + public class RoomInfo + { + public long RoomId { get; set; } + public string Title { get; set; } + public int Attention { get; set; } + public long LiveTime { get; set; } + public bool LiveStatus { get; set; } + public int ShortId { get; set; } + public string AreaName { get; set; } + public string Face { get; set; } + public string tags { get; set; } + public string CoverFromUser { get; set; } + public string KeyFrame { get; set; } + public string Url { get; set; } - } - public class TaskStatus - { - public bool IsDownload { get; set; } - public long DownloadSize { get; set; } - public DownloadStatus Status { get; set; } - public DateTime StartTime { get; set; } - public DateTime EndTime { get; set; } - public string Title { get; set; } + } + public class TaskStatus + { + public bool IsDownload { get; set; } + public long DownloadSize { get; set; } + public DownloadStatus Status { get; set; } + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public string Title { get; set; } + } } } } @@ -135,61 +197,106 @@ public class AllBasicRoomInformation : ControllerBase /// 获取所有配置中房间基本信息 /// /// + /// 分页后每页数量,非必填,默认或传0为全部 + /// 获取的页数,当分页数量不为0时有效 /// [HttpPost(Name = "AllBasicRoomInformation")] - public ActionResult Post(PostCommonParameters commonParameters) + public ActionResult Post(PostCommonParameters commonParameters, [FromForm] int quantity = 0, [FromForm] int page = 0) { - List basicInfolist = new List(); - var roomlist = _Room.GetCardListDeepClone(); - foreach (var room in roomlist) + try { - BasicInfo basicInfo = new BasicInfo(); - basicInfo.userInfo = new() - { - Name=room.Value.Name, - UID=room.Value.UID - }; - basicInfo.roomInfo = new BasicInfo.RoomInfo() + Data basicInfolist = new Data(); + var roomlist = _Room.GetCardListDeepClone(); + basicInfolist.Total = roomlist.Count; + if (quantity == 0) { - LiveStatus=room.Value.live_status.Value==1?true:false, - RoomId=room.Value.RoomId, - Title=room.Value.Title.Value, - }; - basicInfo.taskStatus = new BasicInfo.TaskStatus() + foreach (var room in roomlist) + { + Data.BasicInfo basicInfo = new Data.BasicInfo(); + basicInfo.userInfo = new() + { + Name = room.Value.Name, + UID = room.Value.UID + }; + basicInfo.roomInfo = new Data.BasicInfo.RoomInfo() + { + LiveStatus = room.Value.live_status.Value == 1 ? true : false, + RoomId = room.Value.RoomId, + Title = room.Value.Title.Value, + }; + basicInfo.taskStatus = new Data.BasicInfo.TaskStatus() + { + DownloadSize = room.Value.DownInfo.DownloadSize, + IsDownload = room.Value.DownInfo.IsDownload, + Status = room.Value.DownInfo.Status, + }; + basicInfolist.basicInfolist.Add(basicInfo); + } + } + else { - DownloadSize=room.Value.DownInfo.DownloadSize, - IsDownload=room.Value.DownInfo.IsDownload, - Status=room.Value.DownInfo.Status, - }; - basicInfolist.Add(basicInfo); + for (int i = page * quantity - quantity; i < roomlist.Count && i < page * quantity + quantity; i++) + { + Data.BasicInfo basicInfo = new Data.BasicInfo(); + basicInfo.userInfo = new() + { + Name = roomlist.ElementAt(i).Value.Name, + UID = roomlist.ElementAt(i).Value.UID + }; + basicInfo.roomInfo = new Data.BasicInfo.RoomInfo() + { + LiveStatus = roomlist.ElementAt(i).Value.live_status.Value == 1 ? true : false, + RoomId = roomlist.ElementAt(i).Value.RoomId, + Title = roomlist.ElementAt(i).Value.Title.Value, + }; + basicInfo.taskStatus = new Data.BasicInfo.TaskStatus() + { + DownloadSize = roomlist.ElementAt(i).Value.DownInfo.DownloadSize, + IsDownload = roomlist.ElementAt(i).Value.DownInfo.IsDownload, + Status = roomlist.ElementAt(i).Value.DownInfo.Status, + }; + basicInfolist.basicInfolist.Add(basicInfo); + } + } + roomlist.Clear(); + roomlist = null; + return Content(MessageBase.Success(nameof(AllBasicRoomInformation), basicInfolist), "application/json"); } - roomlist.Clear(); - roomlist = null; - return Content(MessageBase.Success(nameof(AllBasicRoomInformation), basicInfolist), "application/json"); - } - public class BasicInfo - { - public UserInfo userInfo { get; set; } = new(); - public RoomInfo roomInfo { get; set; } = new(); - public TaskStatus taskStatus { get; set; } = new(); - public class UserInfo + catch (Exception) { - public string Name { get; set; } - public long UID { get; set; } + return Content(MessageBase.Success(nameof(AllBasicRoomInformation), "", "请求错误", MessageBase.code.ParameterError), "application/json"); } - public class RoomInfo + } + public class Data + { + public int Total { get; set; } = 0; + public int CurrentPage { get; set; } = 1; + public List basicInfolist { get; set; } = new(); + public class BasicInfo { - public long RoomId { get; set; } - public string Title { get; set; } - public bool LiveStatus { get; set; } + public UserInfo userInfo { get; set; } = new(); + public RoomInfo roomInfo { get; set; } = new(); + public TaskStatus taskStatus { get; set; } = new(); + public class UserInfo + { + public string Name { get; set; } + public long UID { get; set; } + } + public class RoomInfo + { + public long RoomId { get; set; } + public string Title { get; set; } + public bool LiveStatus { get; set; } - } - public class TaskStatus - { - public bool IsDownload { get; set; } - public long DownloadSize { get; set; } - public DownloadStatus Status { get; set; } + } + public class TaskStatus + { + public bool IsDownload { get; set; } + public long DownloadSize { get; set; } + public DownloadStatus Status { get; set; } + } } } + } } diff --git a/CLI/WebAppServices/MessageBase.cs b/CLI/WebAppServices/MessageBase.cs index 5b98c1ec0..6c84c43bb 100644 --- a/CLI/WebAppServices/MessageBase.cs +++ b/CLI/WebAppServices/MessageBase.cs @@ -34,9 +34,9 @@ public enum code /// ok = 0, /// - /// UID不存在 + /// 参数有误 /// - UIDFailed=-2, + ParameterError= 5000, /// /// 登陆信息失效 ///