feat: 添加动漫色情检测(WD Tagger v3),媒体库展示优化

- 新增 anime_nsfw 模块:WD Tagger v3 模型检测动漫/二次元图片

- 修复误判:当 general 评分最高时判定为安全,避免非动漫图误判

- 数据库存储四个 rating 原始分数(JSON),无需重扫即可查看

- 媒体库新增动漫色情检测列、文件路径列(支持一键复制)

- 修复预览图加载占位符显示两个点的问题

- 移动文件按钮不再限制扫描完成后才显示
This commit is contained in:
2025-08-24 21:14:04 +08:00
parent bd84bc98e8
commit d6798ef1ee
12 changed files with 934 additions and 31 deletions
+10
View File
@@ -137,6 +137,16 @@ func (c *MediaController) Preview(ctx *gin.Context) {
ctx.File(path)
}
// AvgManualNsfwScore 处理 GET /api/media/manual-nsfw-avg:返回手动标记均值。
func (c *MediaController) AvgManualNsfwScore(ctx *gin.Context) {
avg, err := c.store.AvgManualNsfwScore()
if err != nil {
Error(ctx, http.StatusInternalServerError, "查询失败:"+err.Error())
return
}
Success(ctx, gin.H{"avg": avg})
}
// UpdateManualNsfw 处理 PUT /api/media/:id/manual-nsfw:更新手动色情标记。
func (c *MediaController) UpdateManualNsfw(ctx *gin.Context) {
idStr := ctx.Param("id")