feat(adapters): port MoviePilot open site framework (7 spiders, 20 user parsers) + MovieClaw v0.27.0 site definitions + mp-sync tools (W1-3c)

- sites/spiders: Haidan/HDDolby/RousiPro/SunnyPT/TNode/TorrentLeech/Yema (+mTorrent wrapper), specialized SiteAdapter, indirect download resolved at download time
- sites/user-parsers: SiteParserBase + all 20 MP SiteSchema parsers (lxml XPath via xpath+xmldom), refreshSiteUserData with schema fallback
- sites/definitions: zod SiteDefinition schemas, 23 MovieClaw v0.27.0 (MIT) definitions via scripts/mp-sync/movieclaw-import.mjs, registry getSiteDefinition/listSiteDefinitions, NOTICE
- scripts/mp-sync: ledger.json (upstream sha256), check.mjs, build-ledger.mjs; docs/porting/mp-sync-ledger.md
- license-and-provenance: add copied-mit kind, re-anchor MovieClaw rows to v0.27.0

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-09-27 18:39:27 +08:00
1 parent cf85481d95
commit d9f2af2f3c
166 files changed
+16577 -186

No files matched your search

+42 -15
View File
@@ -1,8 +1,24 @@
export { audiencesDefinition, loadIndexerDefinition } from "./definitions";
export type { SiteAdapterDeps } from "./deps";
export { createMteamAdapter, mteamTorrentToRelease } from "./mteam/adapter";
export { type MteamApiPath, mteamPost } from "./mteam/client";
export { type MteamDefinition, mteamApiBase, mteamDefinition } from "./mteam/definition";
export {
audiencesDefinition,
BUILTIN_SITE_DEFINITIONS,
chdbitsDefinition,
DefinitionProvenanceSchema,
hhanclubDefinition,
IndexerDefinitionSchema,
loadIndexerDefinition,
loadSiteDefinition,
MteamDefinitionSchema,
parseIndexerDefinition,
parseMteamDefinition,
parseSpecializedSiteDefinition,
SpecializedSiteDefinitionSchema,
SpiderFieldSelectorSchema,
SpiderFilterSchema,
} from "./definitions/index.ts";
export type { SiteAdapterDeps } from "./deps.ts";
export { createMteamAdapter, mteamTorrentToRelease } from "./mteam/adapter.ts";
export { type MteamApiPath, mteamPost } from "./mteam/client.ts";
export { type MteamDefinition, mteamApiBase, mteamDefinition } from "./mteam/definition.ts";
export {
findImdbid,
getDownloadVolumeFactor,
@@ -10,13 +26,22 @@ export {
type MteamTorrentJson,
mteamSearchParams,
parseMteamResult,
} from "./mteam/spider";
export { createSiteRateLimiter, type RateLimiterOptions, type SiteRateLimiter } from "./rate-limit";
export { createSiteAdapter, getSiteAdapter, SITE_DEFINITIONS, type SiteDefinition } from "./registry";
export { clearSearchText, createSpiderSiteAdapter } from "./spider/adapter";
export { parseDetailPage } from "./spider/detail";
export { promotionFromFactors, spiderTorrentToRelease } from "./spider/map";
} from "./mteam/spider.ts";
export { createSiteRateLimiter, type RateLimiterOptions, type SiteRateLimiter } from "./rate-limit.ts";
export {
createSiteAdapter,
getSiteAdapter,
getSiteDefinition,
listSiteDefinitions,
SITE_DEFINITIONS,
type SiteDefinition,
} from "./registry.ts";
export { clearSearchText, createSpiderSiteAdapter } from "./spider/adapter.ts";
export { parseDetailPage } from "./spider/detail.ts";
export { promotionFromFactors, spiderTorrentToRelease } from "./spider/map.ts";
export { mcSelect } from "./spider/mc-selector.ts";
export type {
DefinitionProvenance,
IndexerDefinition,
SpiderCategoryConfig,
SpiderCategoryItem,
@@ -24,7 +49,7 @@ export type {
SpiderFields,
SpiderFilter,
UmtSiteExtension,
} from "./spider/schema";
} from "./spider/schema.ts";
export {
combineUrl,
type MediaKind,
@@ -35,7 +60,8 @@ export {
type SiteSpiderQuery,
type SpiderTorrent,
selectMediaCategories,
} from "./spider/spider";
} from "./spider/spider.ts";
export * from "./spiders/index.ts";
export {
type DownloadTarget,
type HitAndRun,
@@ -57,5 +83,6 @@ export {
type SiteRelease,
type SiteReleaseDetail,
staticSecretResolver,
} from "./types";
export { parseCount, parseSiteTime } from "./util";
} from "./types.ts";
export * from "./user-parsers/index.ts";
export { parseCount, parseSiteTime } from "./util.ts";