服务端媒体源导入/保存/客户端输出链路修复:支持 snake/camel、subcategories/sources,默认客户端可见,保存后发布兼容 media-types.json。
build-winui / winui (push) Has been cancelled

新增数据库同步 Job API、持久化状态、实时输出、最新任务恢复,以及系统日志聚合接口。
管理端优化:日志中心、运维实时状态框、同步输出自动滚动、仪表盘“输出”列、真实延迟空态、本地 favicon/avatar。
新增 server/unified-management/assets/favicon.ico 和 developer-avatar.png,并接好 /favicon.ico、/admin/favicon.ico、/setup/favicon.ico、/assets/*。
WinUI 随机放映室卡片优先显示子接口原始 Description。
Inno 安装器输出框改为选区末尾 + SendMessage 滚动到底部。
This commit is contained in:
QWQLwToo
2026-06-29 22:28:58 +08:00
parent f00124c1c0
commit 7745e7a2d4
36 changed files with 1482 additions and 153 deletions
@@ -113,6 +113,32 @@ public sealed class RemoteMediaCatalogTests
Assert.IsTrue(source.IsAvailable);
}
[TestMethod]
public void ParserPreservesSourceDescriptionForCards()
{
const string content = """
{
"categories": [
{
"id": "image",
"subcategories": [
{
"id": "demo",
"name": "Demo",
"description": "后台配置的子接口描述",
"api_url": "https://api.example.test/random"
}
]
}
]
}
""";
var source = RemoteMediaCatalogParser.Parse(content).Categories.Single().Sources.Single();
Assert.AreEqual("后台配置的子接口描述", source.Description);
}
[TestMethod]
public void ExplicitMediaTypeWinsOverCategoryAndFormats()
{
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1422,9 +1422,9 @@ public class RandomCinemaPage : ToolPageBase
private static string DisplayDescription(RemoteMediaSource source)
{
if (!string.IsNullOrWhiteSpace(source.DisplayDescription))
if (!string.IsNullOrWhiteSpace(source.Description))
{
return source.DisplayDescription;
return source.Description;
}
return LooksBroken(source.Description)