feat(sources): site kinds and capabilities (IA-2)
site.kind: pt / public_bt / rss_feed / torznab. Each kind declares the acquisition modes it may support (search, list, rss, detail, login, userinfo); a site's effective capabilities = kind ∩ site definition. torznab only defines TorznabSiteConfig and cannot be added yet. Migration 0055: generic_rss sites become rss_feed, the rest pt; feeds without a site are grouped by host into new custom RSS source sites (cursor window and conditional headers cleared so the next fetch writes releases). User DB read-only dry-run: 0 orphan feeds. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
f0e1c77e35
commit
89d2c81de6
6 files changed
+317
-12
No files matched your search
@@ -25,8 +25,10 @@ import {
|
||||
SiteAccountUserData,
|
||||
SiteAdapter,
|
||||
SiteAuthKind,
|
||||
SiteCapability,
|
||||
SiteHealth,
|
||||
SiteHealthResult,
|
||||
SiteKind,
|
||||
SiteLastHealth,
|
||||
SiteLoginResult,
|
||||
SiteUserDataPoint,
|
||||
@@ -430,6 +432,10 @@ export const SiteBrief = z.object({
|
||||
id: Id,
|
||||
key: z.string(),
|
||||
name: z.string(),
|
||||
/** 站点类型:pt / public_bt / rss_feed / torznab */
|
||||
kind: SiteKind,
|
||||
/** 实际可用的获取方式(search / list / rss / detail / login / userinfo) */
|
||||
capabilities: z.array(SiteCapability),
|
||||
adapter: SiteAdapter,
|
||||
baseUrl: z.string(),
|
||||
enabled: z.boolean(),
|
||||
|
||||
Reference in new issue
Block a user