From e7d24aa20bdc6d5ef29e4accc05327b6aa9a2120 Mon Sep 17 00:00:00 2001
From: acite <1498045907@qq.com>
Date: Sat, 20 Sep 2025 02:16:43 +0800
Subject: [PATCH] [feat] Video system optimization
---
.idea/.idea.Abyss/.idea/workspace.xml | 22 +-
.../Controllers/Media/ImageController.cs | 2 +-
.../Controllers/Media/LiveController.cs | 2 +-
.../Controllers/Media/VideoController.cs | 147 ++++--
.../Controllers/Security/RootController.cs | 137 ++++-
.../Controllers/Security/UserController.cs | 31 +-
.../Controllers/Task/TaskController.cs | 2 +-
Abyss/Components/Services/ResourceService.cs | 481 ++++++++++++++++--
Abyss/Toolkits/update-video.py | 98 +++-
9 files changed, 787 insertions(+), 135 deletions(-)
diff --git a/.idea/.idea.Abyss/.idea/workspace.xml b/.idea/.idea.Abyss/.idea/workspace.xml
index df7971b..f3cceab 100644
--- a/.idea/.idea.Abyss/.idea/workspace.xml
+++ b/.idea/.idea.Abyss/.idea/workspace.xml
@@ -11,6 +11,14 @@
+
+
+
+
+
+
+
+
@@ -33,15 +41,14 @@
+
+
+
+
+
-
-
-
-
-
-
@@ -221,6 +228,9 @@
+
+
+
diff --git a/Abyss/Components/Controllers/Media/ImageController.cs b/Abyss/Components/Controllers/Media/ImageController.cs
index 6c3a2d2..97a21f9 100644
--- a/Abyss/Components/Controllers/Media/ImageController.cs
+++ b/Abyss/Components/Controllers/Media/ImageController.cs
@@ -13,7 +13,7 @@ using Task = System.Threading.Tasks.Task;
[ApiController]
[Route("api/[controller]")]
-public class ImageController(ILogger logger, ResourceService rs, ConfigureService config) : BaseController
+public class ImageController(ResourceService rs, ConfigureService config) : BaseController
{
public readonly string ImageFolder = Path.Combine(config.MediaRoot, "Images");
diff --git a/Abyss/Components/Controllers/Media/LiveController.cs b/Abyss/Components/Controllers/Media/LiveController.cs
index c29e525..7e5afcf 100644
--- a/Abyss/Components/Controllers/Media/LiveController.cs
+++ b/Abyss/Components/Controllers/Media/LiveController.cs
@@ -6,7 +6,7 @@ namespace Abyss.Components.Controllers.Media;
[ApiController]
[Route("api/[controller]")]
-public class LiveController(ILogger logger, ResourceService rs, ConfigureService config): BaseController
+public class LiveController(ResourceService rs, ConfigureService config): BaseController
{
public readonly string LiveFolder = Path.Combine(config.MediaRoot, "Live");
diff --git a/Abyss/Components/Controllers/Media/VideoController.cs b/Abyss/Components/Controllers/Media/VideoController.cs
index d5848a7..5429f30 100644
--- a/Abyss/Components/Controllers/Media/VideoController.cs
+++ b/Abyss/Components/Controllers/Media/VideoController.cs
@@ -1,9 +1,9 @@
-
using Abyss.Components.Services;
using Abyss.Components.Static;
using Abyss.Components.Tools;
using Abyss.Model;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.StaticFiles;
using Newtonsoft.Json;
namespace Abyss.Components.Controllers.Media;
@@ -12,7 +12,8 @@ using Task = System.Threading.Tasks.Task;
[ApiController]
[Route("api/[controller]")]
-public class VideoController(ILogger logger, ResourceService rs, ConfigureService config) : BaseController
+public class VideoController(ILogger logger, ResourceService rs, ConfigureService config)
+ : BaseController
{
private ILogger _logger = logger;
public readonly string VideoFolder = Path.Combine(config.MediaRoot, "Videos");
@@ -21,7 +22,7 @@ public class VideoController(ILogger logger, ResourceService rs
public async Task InitAsync(string token, string owner)
{
var r = await rs.Initialize(VideoFolder, token, owner, Ip);
- if(r) return Ok(r);
+ if (r) return Ok(r);
return StatusCode(403, new { message = "403 Denied" });
}
@@ -29,10 +30,10 @@ public class VideoController(ILogger logger, ResourceService rs
public async Task GetClass(string token)
{
var r = (await rs.Query(VideoFolder, token, Ip))?.SortLikeWindows();
-
- if(r == null)
+
+ if (r == null)
return StatusCode(401, new { message = "Unauthorized" });
-
+
return Ok(r);
}
@@ -44,24 +45,21 @@ public class VideoController(ILogger logger, ResourceService rs
var r = await rs.Query(d, token, Ip);
if (r == null) return StatusCode(401, new { message = "Unauthorized" });
- var rv = r.Select(x =>
- {
- return Helpers.SafePathCombine(VideoFolder, [klass, x, "summary.json"]);
- }).ToArray();
+ var rv = r.Select(x => { return Helpers.SafePathCombine(VideoFolder, [klass, x, "summary.json"]); }).ToArray();
for (int i = 0; i < rv.Length; i++)
{
- if(rv[i] == null) continue;
+ if (rv[i] == null) continue;
rv[i] = await System.IO.File.ReadAllTextAsync(rv[i] ?? "");
}
- var sv = rv.Where(x => x!=null).Select(x => x ?? "")
+ var sv = rv.Where(x => x != null).Select(x => x ?? "")
.Select(x => JsonConvert.DeserializeObject