feat(sites): sync MoviePilot v3.2.4 spiders and M-Team subtitle APIs
This commit is contained in:
1 parent
3b9376c75a
commit
c38e7131f1
26 files changed
+775
-56
No files matched your search
@@ -1,11 +1,34 @@
|
||||
import { createMockFetch, TNODE_HOME_HTML, TNODE_HOME_NO_TOKEN, TNODE_SEARCH_OK } from "@umt/testkit";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { createSiteRateLimiter } from "../rate-limit.ts";
|
||||
import { createSpecializedSiteAdapter } from "./adapter.ts";
|
||||
import { adapterWith, expectSiteError, testDef, withTorrent } from "./testing.ts";
|
||||
import { parseTnodeToken, tnodeSearchParams, tnodeSpider } from "./tnode.ts";
|
||||
|
||||
const def = testDef("TNodeSpider", { domain: "https://tnode.example/" });
|
||||
|
||||
describe("TNodeSpider(MP tnode.py)", () => {
|
||||
it("凭据变更后不复用旧CSRF令牌", async () => {
|
||||
let cookie = "session=first";
|
||||
const mock = createMockFetch({
|
||||
"GET /": { body: TNODE_HOME_HTML },
|
||||
"POST /api/torrent/advancedSearch": { body: TNODE_SEARCH_OK },
|
||||
});
|
||||
const adapter = createSpecializedSiteAdapter(def, tnodeSpider, {
|
||||
fetch: mock.fetch,
|
||||
secrets: {
|
||||
async resolve() {
|
||||
return cookie;
|
||||
},
|
||||
},
|
||||
limiter: createSiteRateLimiter({ minIntervalMs: 0 }),
|
||||
});
|
||||
await adapter.list(1);
|
||||
await adapter.list(1);
|
||||
cookie = "session=second";
|
||||
await adapter.list(1);
|
||||
expect(mock.requests.filter((request) => request.url.pathname === "/")).toHaveLength(2);
|
||||
});
|
||||
it("__get_params / token 解析", () => {
|
||||
expect(tnodeSearchParams("tt0923811", 1)).toMatchObject({
|
||||
page: 2,
|
||||
|
||||
Reference in new issue
Block a user