Files
UHD_Media_Tool/packages/adapters/src/sites/index.ts
T
rootandClaude Opus 5.5 a11ef16e40 fix(sites): Cloudflare 挑战不算凭据错误(CF-2)
- http.ts:cf-mitigated: challenge 或 403/503/429 挑战页 → SiteError(challenge),503 不再算维护、403 不再落到 auth_invalid
- 挑战页分类 classifyChallengePage:自动 / 可点(Turnstile)/ 真验证码
- 刷新登录 / 用户数据遇 Cloudflare 挑战只记 last_error,账号状态不变、不开登录失效事项

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 21:26:53 +08:00

143 lines
3.6 KiB
TypeScript

export {
CHALLENGE_STATUSES,
type ChallengePageKind,
challengeRuleOfHeaders,
challengeRuleOfHtml,
classifyChallengePage,
detectChallenge,
} from "./challenge.ts";
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 {
cleanDescription,
DEFAULT_DESCRIPTION_RULES,
type DescriptionRules,
type DetailInfoItem,
type StructuredDescription,
stripMarkup,
structureDescription,
} from "./detail-description.ts";
export { type FormattedDetailPage, formatDetailPage } from "./detail-format.ts";
export {
type FeedMediaType,
normalizeSiteFeedItem,
type SiteFeedItemFields,
siteCategoryMediaType,
} from "./feed-item.ts";
export { buildFileTree, type FileRole, type FileTreeRow } from "./file-tree.ts";
export {
classifyLoginError,
loginFailureText,
loginNexusPhp,
type NexusLoginForm,
type NexusLoginInput,
type NexusLoginResult,
SiteLoginError,
type SiteLoginFailure,
totpCode,
} from "./login/nexusphp.ts";
export {
type MediaAudioTrack,
type MediaGeneral,
type MediaSummary,
type MediaTextTrack,
type MediaVideoTrack,
parseMediaSummary,
} from "./mediainfo.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,
getUploadVolumeFactor,
type MteamTorrentJson,
mteamSearchParams,
parseMteamResult,
} from "./mteam/spider.ts";
export {
createSharedSiteRateLimiter,
createSiteRateLimiter,
type RateLimiterOptions,
type SharedBucketPort,
type SharedRateLimiterOptions,
type SiteRateLimiter,
} from "./rate-limit.ts";
export {
createSiteAdapter,
getSiteAdapter,
getSiteDefinition,
listSiteDefinitions,
SITE_DEFINITIONS,
type SiteDefinition,
} from "./registry.ts";
export { clearSearchText, createSpiderSiteAdapter, judgeLoginPage } 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,
SpiderFieldSelector,
SpiderFields,
SpiderFilter,
UmtSiteExtension,
} from "./spider/schema.ts";
export {
combineUrl,
type MediaKind,
type MpMediaType,
parseSizeMp,
resolveCategoryMediaType,
SiteSpider,
type SiteSpiderQuery,
type SpiderTorrent,
selectMediaCategories,
} from "./spider/spider.ts";
export * from "./spiders/index.ts";
export {
type DownloadTarget,
type HitAndRun,
type PromotionType,
type SecretResolver,
type SiteAdapter,
type SiteCallOptions,
type SiteCapabilities,
type SiteCategory,
type SiteCredentialKind,
type SiteDetailFile,
type SiteDetailPage,
SiteError,
type SiteErrorKind,
type SiteHealth,
type SiteHealthDetail,
type SiteHealthStatus,
type SiteKind,
type SiteListFilters,
type SitePage,
type SitePromotion,
type SiteRelease,
type SiteReleaseDetail,
staticSecretResolver,
} from "./types.ts";
export * from "./user-parsers/index.ts";
export { parseCount, parseSiteTime } from "./util.ts";