refactor: split modules and harden scraping workflows

This commit is contained in:
ShukeBta
2026-06-24 11:59:18 +08:00
parent efca3cbe69
commit 192f35d9fa
470 changed files with 47957 additions and 33839 deletions
+11 -11
View File
@@ -12,27 +12,27 @@ import (
func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
var resolves atomic.Int32
upstream := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/file/download" {
if r.URL.Path != "/api/fs/get" {
t.Fatalf("unexpected path %s", r.URL.Path)
}
n := resolves.Add(1)
w.Header().Set("Content-Type", "application/json")
_, _ = fmt.Fprintf(w, `{"status":200,"code":0,"data":[{"fid":"f1","download_url":"http://cdn.local/%d.mkv"}]}`, n)
_, _ = fmt.Fprintf(w, `{"code":200,"data":{"raw_url":"http://cdn.local/%d.mkv"}}`, n)
}))
defer upstream.Close()
_, storage := newStorageUploadTestService(t)
if _, err := storage.Save(t.Context(), StorageInput{
Type: "quark",
Type: "openlist",
Config: map[string]any{
"cookie": "kps=test",
"base": upstream.URL,
"server": upstream.URL,
"token": "token",
},
}); err != nil {
t.Fatal(err)
}
link, err := storage.CloudResolve(t.Context(), "quark", "f1", "Player/1")
link, err := storage.CloudResolve(t.Context(), "openlist", "/Movies/f1.mkv", "Player/1")
if err != nil {
t.Fatal(err)
}
@@ -40,7 +40,7 @@ func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
t.Fatalf("first resolve link=%#v resolves=%d", link, resolves.Load())
}
for i := 0; i < cloudResolveHotHitThreshold-1; i++ {
link, err = storage.CloudResolve(t.Context(), "quark", "f1", "Player/1")
link, err = storage.CloudResolve(t.Context(), "openlist", "/Movies/f1.mkv", "Player/1")
if err != nil {
t.Fatal(err)
}
@@ -49,7 +49,7 @@ func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
}
}
key := storage.resolveCacheKey("quark", "f1", "Player/1")
key := storage.resolveCacheKey("openlist", "/Movies/f1.mkv", "Player/1")
storage.resolveMu.Lock()
entry := storage.resolveCache[key]
entry.hits = cloudResolveHotHitThreshold
@@ -57,7 +57,7 @@ func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
storage.resolveCache[key] = entry
storage.resolveMu.Unlock()
link, err = storage.CloudResolve(t.Context(), "quark", "f1", "Player/1")
link, err = storage.CloudResolve(t.Context(), "openlist", "/Movies/f1.mkv", "Player/1")
if err != nil {
t.Fatal(err)
}
@@ -71,7 +71,7 @@ func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
if resolves.Load() < 2 {
t.Fatalf("background refresh did not run, resolves=%d", resolves.Load())
}
link, err = storage.CloudResolve(t.Context(), "quark", "f1", "Player/1")
link, err = storage.CloudResolve(t.Context(), "openlist", "/Movies/f1.mkv", "Player/1")
if err != nil {
t.Fatal(err)
}
@@ -81,7 +81,7 @@ func TestCloudResolveHotCacheRefreshesInBackground(t *testing.T) {
}
func TestCloudResolveCacheTTLUsesShortTTLForCloudPlaybackLinks(t *testing.T) {
for _, typ := range []string{"quark", "cloud115", "clouddrive2", "openlist"} {
for _, typ := range []string{"cloud115", "clouddrive2", "openlist"} {
if got := cloudResolveCacheTTL(typ); got != 2*time.Minute {
t.Fatalf("%s cloud resolve cache ttl = %v, want 2m", typ, got)
}