feat(adapters): RSS and PT site adapters ported from MoviePilot v3 + mocks (W1-3b)
- rss: port of MP RssHelper._parse_impl/get_rss_link semantics with safe XML (entities off, DTD/ENTITY rejected, size/item caps), ETag/Last-Modified, backoff + Retry-After, circuit breaker with manual reset, passkey redaction, overlap-window GUID+digest dedupe - sites/spider: TS port of MP SiteSpider (indexer schema, search URL builder, field DSL, filters, Jinja templates via nunjucks, login-page detection); audiences definition hand-written as JSON; raw category id preserved; shared per-site token bucket - sites/mteam: port of MP MTorrentSpider (params, result mapping, promo factors, genDlToken flow) without embedding the API key in enclosures; business code/message checks - testkit: mock RSS server, mock NexusPHP site, mock M-Team API - docs: W1-3b migration mapping appended to porting ledger Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
1 parent
ef2e504a94
commit
a6d049db81
47 files changed
+5414
No files matched your search
@@ -0,0 +1,61 @@
|
||||
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 {
|
||||
findImdbid,
|
||||
getDownloadVolumeFactor,
|
||||
getUploadVolumeFactor,
|
||||
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";
|
||||
export type {
|
||||
IndexerDefinition,
|
||||
SpiderCategoryConfig,
|
||||
SpiderCategoryItem,
|
||||
SpiderFieldSelector,
|
||||
SpiderFields,
|
||||
SpiderFilter,
|
||||
UmtSiteExtension,
|
||||
} from "./spider/schema";
|
||||
export {
|
||||
combineUrl,
|
||||
type MediaKind,
|
||||
type MpMediaType,
|
||||
parseSizeMp,
|
||||
resolveCategoryMediaType,
|
||||
SiteSpider,
|
||||
type SiteSpiderQuery,
|
||||
type SpiderTorrent,
|
||||
selectMediaCategories,
|
||||
} from "./spider/spider";
|
||||
export {
|
||||
type DownloadTarget,
|
||||
type HitAndRun,
|
||||
type PromotionType,
|
||||
type SecretResolver,
|
||||
type SiteAdapter,
|
||||
type SiteCallOptions,
|
||||
type SiteCapabilities,
|
||||
type SiteCategory,
|
||||
type SiteCredentialKind,
|
||||
SiteError,
|
||||
type SiteErrorKind,
|
||||
type SiteHealth,
|
||||
type SiteHealthStatus,
|
||||
type SiteKind,
|
||||
type SiteListFilters,
|
||||
type SitePage,
|
||||
type SitePromotion,
|
||||
type SiteRelease,
|
||||
type SiteReleaseDetail,
|
||||
staticSecretResolver,
|
||||
} from "./types";
|
||||
export { parseCount, parseSiteTime } from "./util";
|
||||
Reference in new issue
Block a user