- GET /search?q=&scope=all|media|releases|actions&limit=: local works (title_alias
exact/prefix/trgm + name prefix, slot status summary), TMDB candidates (cached,
localEntityId), cross-site releases, page/action jump list; tookMs per group
- cross-site: enabled sites via shared per-site limiter, 15s AbortSignal timeout,
site concurrency cap 4, same-query coalescing, 30s cache; partial + failedSites;
results upserted to source_release; inventory overlay via GET /inventory
- GET /search/releases: site/resolution/source/size/free/H&R filters, sort, cursor,
facets; shares the cache
- POST /search/releases/{siteId}/{siteReleaseId}/plan: forwards in-process to
POST /acquisition-plans (same auth, validation, audit, rejections)
- contracts/search.ts, runbook, tests (partial/timeout, coalesce, cache, overlay,
filters/sort, plan)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
27 lines
973 B
TypeScript
27 lines
973 B
TypeScript
import { acquisitionOrganizeModule } from "./acquisition-organize/index.ts";
|
|
import { agentModule } from "./agent/index.ts";
|
|
import { authSettingsModule } from "./auth-settings/index.ts";
|
|
import { fileManagerModule } from "./file-manager/index.ts";
|
|
import { piModule } from "./pi/index.ts";
|
|
import { schedulesModule } from "./schedules/index.ts";
|
|
import { searchModule } from "./search/index.ts";
|
|
import { sourcesIdentityModule } from "./sources-identity/index.ts";
|
|
import type { ServerModule } from "./types.ts";
|
|
|
|
export type * from "./types.ts";
|
|
|
|
/**
|
|
* 模块清单:http/app.ts(路由)与 worker(任务/中继/后台循环)都从这里取。
|
|
* 顺序即注册顺序;auth-settings 在前(其它模块的路由依赖它的登录门禁中间件)。
|
|
*/
|
|
export const SERVER_MODULES: readonly ServerModule[] = [
|
|
authSettingsModule,
|
|
sourcesIdentityModule,
|
|
acquisitionOrganizeModule,
|
|
agentModule,
|
|
fileManagerModule,
|
|
piModule,
|
|
schedulesModule,
|
|
searchModule,
|
|
];
|