✨ feat(manga,device): 漫画免签名兜底与 phone 注册身份选项
- /manga 设备池签名路线全部失败时自动降级 wkbrowser 免签名路线(materials/skeleton 三段策略收集原图直链,无需设备/签名/解密),响应附 source: wkbrowser - 新增配置 fanqie.device_identity(默认 pad 保持现状;phone 对齐书源真机注册 payload:host_bit 64 + 补 hardware/device_device/fingerprint 字段) - README 与 openapi.yaml 同步文档,新增 manga_fallback 解析测试
This commit is contained in:
1 parent
84bd3238ab
commit
9aec09bb40
7 files changed
+301
-3
No files matched your search
@@ -0,0 +1,44 @@
|
||||
package fqapi
|
||||
|
||||
import "testing"
|
||||
|
||||
// TestCollectMangaFallbackURIs skeleton 顺序优先、web_uri/md5 取值与原图直链拼接
|
||||
func TestCollectMangaFallbackURIs(t *testing.T) {
|
||||
payload := map[string]interface{}{
|
||||
"materials": map[string]interface{}{
|
||||
"img_1": map[string]interface{}{"data": map[string]interface{}{"web_uri": "novel-pic/aaa"}},
|
||||
"img_2": map[string]interface{}{"data": map[string]interface{}{"web_uri": "/novel-pic/bbb"}},
|
||||
"img_3": map[string]interface{}{"data": map[string]interface{}{"md5": "c0ffee"}},
|
||||
},
|
||||
"skeleton": map[string]interface{}{
|
||||
"data": []interface{}{
|
||||
map[string]interface{}{"elementInfo": "img_2"},
|
||||
map[string]interface{}{"key": "img_1"},
|
||||
map[string]interface{}{"id": "img_3"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// 页序以 skeleton 引用顺序为准
|
||||
want := []string{
|
||||
"https://p6-novel.byteimg.com/origin/novel-pic/bbb",
|
||||
"https://p6-novel.byteimg.com/origin/novel-pic/aaa",
|
||||
"https://p6-novel.byteimg.com/origin/novel-pic/c0ffee",
|
||||
}
|
||||
got := collectMangaFallbackURIs(payload)
|
||||
if len(got) != len(want) {
|
||||
t.Fatalf("got %d 张 want %d 张: %v", len(got), len(want), got)
|
||||
}
|
||||
for i := range want {
|
||||
if got[i] != want[i] {
|
||||
t.Errorf("[%d] got %s want %s", i, got[i], want[i])
|
||||
}
|
||||
}
|
||||
|
||||
// 无 skeleton 时退化为 materials key 末尾数字排序
|
||||
delete(payload, "skeleton")
|
||||
got = collectMangaFallbackURIs(payload)
|
||||
if got[0] != want[1] || got[1] != want[0] {
|
||||
t.Errorf("key 排序错误: %v", got)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user