feat(backend): directory scanner — diff, error state, covers, cache sweep, redis lock

This commit is contained in:
2026-09-05 00:31:32 +08:00
parent 4e84a8aeb7
commit 193d7612b5
7 changed files with 410 additions and 7 deletions
+3 -1
View File
@@ -15,6 +15,7 @@ import (
"booklib/internal/auth"
"booklib/internal/db"
"booklib/internal/redispkg"
"booklib/internal/scanner"
"booklib/internal/store"
)
@@ -43,7 +44,8 @@ func setupAPI(t *testing.T) (*store.Store, http.Handler) {
cfg := testCfg()
cfg.BooksDir = filepath.Clean(os.TempDir())
cfg.CacheDir = t.TempDir()
r := NewRouter(cfg, st, redispkg.New(os.Getenv("REDIS_URL")))
rdb := redispkg.New(os.Getenv("REDIS_URL"))
r := NewRouter(cfg, st, rdb, scanner.New(st, cfg, rdb))
if u := os.Getenv("REDIS_URL"); u != "" { // 测试卫生: 共享 redis 上重置登录限流桶, 防跨测试累计 429
if opt, e := redis.ParseURL(u); e == nil {
rc := redis.NewClient(opt)