Files
kenaito-media-picker/internal/api/router.go
T
odboy f915a9b1ac feat: 扫描整理并行化、WebSocket 实时进度与统计看板
- 移动阶段并行处理文件,按原子计数上报累计进度
- 扫描遍历阶段实时上报已发现文件数,界面不再卡在 0/0
- 新增 /api/scan/ws WebSocket 实时推送扫描状态;前端断线指数退避自动重连,并以低频轮询兜底
- 新增统计看板与媒体库筛选/排序,目录选择器路径不存在时回退到最近可用父目录
- 存放目录支持自定义并持久化,默认输出到 KMP已整理
2025-05-08 21:16:20 +08:00

38 lines
806 B
Go

package api
import (
"net/http"
"github.com/gin-gonic/gin"
"kenaito-media-picker/internal/service"
"kenaito-media-picker/internal/store"
)
// NewRouter 组装 Gin 路由:健康检查 + API 路由组
func NewRouter(st *store.Store) *gin.Engine {
r := gin.New()
r.Use(gin.Recovery())
// 健康检查
r.GET("/health/check", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"status": "ok"})
})
apiGroup := r.Group("/api")
{
mc := NewMediaController(st)
apiGroup.POST("/media/list", mc.List)
apiGroup.POST("/media/stats", mc.Stats)
sc := NewScanController(service.NewScanService(st))
apiGroup.POST("/scan/start", sc.Start)
apiGroup.GET("/scan/status", sc.Status)
apiGroup.GET("/scan/ws", sc.Ws)
fc := NewFsController()
apiGroup.GET("/fs/list", fc.List)
}
return r
}