Skip to main content

xtream-electron

Use when changing Xtream routes, Signal Store or data sources, content identity, SQLite-backed import, search or delete, sparse VOD playback, or Electron and PWA behavior.

来源信息

仓库
4gray/iptvnator
最近来源活动
2026年7月31日 06:00
检测到的 SKILL.md 语言
英语
星标
7,387
分支
958

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
xtream-electron
description
Use when changing Xtream routes, Signal Store or data sources, content identity, SQLite-backed import, search or delete, sparse VOD playback, or Electron and PWA behavior.
# Xtream Electron ## Read First - `docs/architecture/xtream-portal-compatibility.md` - `docs/architecture/portal-detail-navigation.md` - `docs/architecture/sqlite-db-worker.md` - `docs/architecture/vod-multi-source.md` ## Ownership And Runtime Routed screens live in `libs/portal/xtream/feature`; API, cache, Signal Store, and data sources in `libs/portal/xtream/data-access`; collection services and reusable multi-source discovery/resolution in `libs/portal/shared/data-access`; reusable views in `libs/portal/shared/ui`; pure contracts/helpers only in `libs/portal/shared/util`. Screen-session multi-source orchestration stays in the Xtream feature. Select `ElectronXtreamDataSource` only through `RuntimeCapabilitiesService.supportsXtreamSqliteDataSource`; otherwise use the PWA data source. A generic `window.electron` check is not the capability contract; existing favorites/recent branches that still use one are migration debt, not precedent. ## Data And Navigation Contracts - Xtream identity is playlist + normalized content type + provider `xtream_id`; collection keys include type and ID. Never resolve colliding live/movie/series IDs by number alone. Distinguish SQLite row IDs from provider `xtream_id` / `stream_id` / `series_id`. - Browse and search use canonical item routes. Favorites/recent use collection-owned inline detail. Preserve enough provider/route identity to recover hidden categories without sending a local database ID to the API. - Sparse VOD publishes the fallback selection first and recovers its provider category in the background. A playable source is one complete positive stream-ID + extension pair; never combine fields from incomplete candidates. - VOD multi-source is capability-gated, owner-scoped, Electron-only Xtream-to-Xtream movie behavior. Its reusable core belongs in portal shared data access; the screen session/host belongs in the Xtream feature. `XtreamStore` composes portal, content, selection, search, EPG, player, favorites, recent items, and playback positions. On the SQLite path, large import/search/delete/restore work remains worker-backed. Renderer-visible DB progress and cancellation use `operationId`. Xtream API requests use `requestId`, import sessions use `sessionId`, and the DB worker also has an internal transport request ID; never conflate any of them. ## Validation Run both data-source specs plus affected Xtream store/feature tests. Use the closest atomized flow: - `web-e2e:e2e-ci--src/xtream.e2e.ts` - `electron-backend-e2e:e2e-ci--src/xtream-responsiveness.e2e.ts` - `electron-backend-e2e:e2e-ci--src/xtream-vod-details.e2e.ts` - `electron-backend-e2e:e2e-ci--src/vod-multi-source.e2e.ts`
在 GitHub 查看