ShukeBta
87bb94d4df
feat(repair): 新增全库修复+重刮入口,剧集类路径正确归类
...
- 服务层 RepairAndRescrapeAllLibraries:先从路径占位符回填缺失/错误外部ID,再逐库重刮(含 no_match 重试)
- 新增 handler 与路由 POST /api/admin/media/repair-rescrape,异步执行经 WS 推送进度
- 前端媒体库页新增「全库修复+重刮」按钮调用该接口
- groupSeries:路径落在剧集类目录(电视剧/动漫/特别篇等)时按剧集卡处理,跳转分类视图
2026-06-19 12:23:56 +08:00
ShukeBta
b44c7f860b
fix(media): 修复emby电影库混入剧集/特别篇识别/剧集合集 + 新增手动编辑元数据
...
emby 兼容层(hills/yamby 等客户端):
- 电影库不再混入剧集:filterLikelyEpisodicPathsFromMovieQuery 按路径
特征(Season/S0x/Specials/电视剧/日番/国漫等)剔除误入电影库的剧集
- itemPayload 改用 mediaShouldBeEpisode:有季集号且(属剧集库或路径像剧集)
才标记为 Episode,修正电影库里剧集被当成 Movie
特别篇识别:
- episode_parser 新增 patSpecialSeason,识别 S0/Season 0/Specials/SP/OVA/
OAD/番外/特别篇/特典 文件夹 → 第0季;seasonFromParents 返回 found 标志,
区分"明确第0季"与"未识别默认第1季"
- emby seasonDir 正则同步支持 Specials/SP/OVA/特别篇 等
剧集合集:
- groupSeries 抽出 isSeriesCard,卡片链接按是否剧集判定,修复剧集卡片
跳转;每集分离的根因(季集号/分组key)随入库识别修复一并改善
手动编辑元数据(自采集视频无TMDB信息时可自定义封面/标题/简介/分类):
- 新增 MediaService.UpdateMetadata + PATCH /media/:id/metadata(需admin)
- 前端 MetadataEditDialog 接入 LibraryPage 与 MediaDetailPage
其他:scanner/scraper/nfo/local+cloud_metadata/adult 元数据识别配套改进;
.gitignore 忽略本地 .dev-cache/.dev-data 运行产物。
2026-06-19 12:23:56 +08:00
ShukeBta
0a3748e564
Fix subscription restore and media library entry links
2026-06-18 10:54:10 +08:00
ShukeBta
6c50697a1a
Fix cloud media metadata repair and merging
2026-06-18 02:58:30 +08:00
ShukeBta
b492d9f867
Fix license sync and cloud scan scheduling
2026-06-18 01:39:39 +08:00
ShukeBta
e4b1488e11
Fix manual scrape apply for cloud media
2026-06-18 00:27:26 +08:00
ShukeBta
29ac7765d2
Fix logo assets and license heartbeat
2026-06-17 23:30:31 +08:00
ShukeBta
a0aeb07f03
Fix notification event toggles and license heartbeat
2026-06-17 20:35:11 +08:00
ShukeBta
850d3db811
Fix scraping workflows subscriptions bot and recycle bin
2026-06-17 19:48:17 +08:00
ShukeBta
91afbe54a2
Polish login copy and restore README community sections
2026-06-17 16:22:06 +08:00
ShukeBta
ab4637beed
Update MediaStationGo branding and deployment docs
2026-06-17 16:01:16 +08:00
ShukeBta
829b88036a
Parallelize cloud library listing
2026-06-16 15:21:19 +08:00
ShukeBta
866b75f644
fix: refresh license status from server edits
2026-06-16 13:19:42 +08:00
ShukeBta
5fc907e51b
Fix subscription dedupe and scan throughput
2026-06-16 11:32:48 +08:00
ShukeBta
fea1b1dda1
Fix PostgreSQL migration resume and home crash guard
2026-06-15 20:13:30 +08:00
ShukeBta
479a06f008
Unify organize ingest pipeline
2026-06-14 23:17:52 +08:00
ShukeBta
c76c72966a
Fix organize targets and cloud transfer controls
2026-06-14 00:27:39 +08:00
ShukeBta
52b772ea45
Fix cloud playback and organize ingest pipeline
2026-06-13 23:21:56 +08:00
ShukeBta
4b2839d753
prefer openlist api credentials
2026-06-13 20:28:23 +08:00
ShukeBta
5f42836bbf
fix organize trigger task flow
2026-06-13 17:08:56 +08:00
ShukeBta
4e0929bbca
fix organize path mapping and task flow
2026-06-13 16:32:38 +08:00
ShukeBta
a177dc61dd
fix emby clients and cloud playback controls
2026-06-13 12:08:57 +08:00
ShukeBta
ba43117a57
fix: honor STRM playback mode for cloud clients
2026-06-13 00:17:39 +08:00
ShukeBta
5d942f2c42
fix: stabilize STRM and cloud playback
2026-06-12 22:57:50 +08:00
ShukeBta
2ad9606ad5
fix full library display and cloud search visibility
2026-06-11 18:50:05 +08:00
ShukeBta
23d1fbfddb
fix cloud library scale and playback compatibility
...
Root cause: display-only cloud library filtering was reused by scan jobs, merged cloud mounts could be skipped, and OpenList listing relied on WebDAV/first-page behavior that could cap huge directories around 100 items. Cloud scans also let new items consume probe budget before existing rows with missing track/artwork metadata.\n\nChanges:\n- split display filtering from scannable cloud filtering so merged cloud mounts still scan\n- add OpenList API pagination with WebDAV fallback\n- prioritize existing cloud media missing metadata before new imports\n- restrict automatic cloud sync to one successful 19:00-21:00 daily window and keep manual scan immediate\n- disable startup cloud full-scan by default, with an explicit opt-in setting\n- improve Emby/cloud playback compatibility and cache/search/test coverage from the continued work
2026-06-11 18:31:01 +08:00
ShukeBta
542e85a067
fix: reduce emby load and stabilize strm scan
2026-06-11 00:18:51 +08:00
ShukeBta
859d6e9d24
implement automatic strm generation
2026-06-10 21:36:55 +08:00
ShukeBta
fd0428ee7d
fix cloud library mounts and artwork caching
2026-06-10 20:43:42 +08:00
ShukeBta
0bf983cec8
fix: improve cloud mount scanning feedback
2026-06-10 18:46:30 +08:00
ShukeBta
0f82cb3084
feat: improve OpenList cloud storage support
2026-06-10 00:08:35 +08:00
ShukeBta
eab8c3c709
feat: add clouddrive2 storage bridge
2026-06-09 20:22:00 +08:00
ShukeBta
bfb0243712
fix: limit ffprobe concurrency
2026-06-09 19:18:21 +08:00
ShukeBta
7d7f3cc758
feat: add cloud transfer and cache optimizations
2026-06-09 19:03:28 +08:00
ShukeBta
a55fc502ca
feat: add configurable scraper throttling
2026-06-09 17:56:25 +08:00
ShukeBta
76fe0dbde9
feat: scrape metadata after organize
2026-06-09 17:00:24 +08:00
ShukeBta
fe0e7a09ce
fix: improve media file organization workflow
2026-06-09 13:57:34 +08:00
ShukeBta
2e26b71478
fix: add organize ingest action
2026-06-08 10:39:02 +08:00
ShukeBta
dea45c5423
fix: load full poster wall media
2026-06-07 22:46:57 +08:00
ShukeBta
8c8d472524
fix: add smart download classification
2026-06-07 21:34:21 +08:00
ShukeBta
a5d061afa6
refactor: split site adapters and site page modules
2026-06-07 18:55:51 +08:00
ShukeBta
df02fd1166
fix: harden bot accounts and download handling
2026-06-07 18:30:27 +08:00
ShukeBta
33698daa3f
refactor: split oversized route and subscription modules
2026-06-07 14:59:32 +08:00
ShukeBta
d77e890f51
fix(app): close feature association gaps
2026-06-07 12:55:27 +08:00
ShukeBta
b38d47a27d
feat(bot): manage device policy via telegram commands
2026-06-07 12:24:21 +08:00
ShukeBta
cf2f77f35d
chore(repo): add lint config and normalize scripts
2026-06-07 11:54:45 +08:00
ShukeBta
d94330b30f
fix(subscription): prevent duplicate qb downloads
2026-06-07 10:05:58 +08:00
shuk shuk
22b64d3d47
fix(organize): strip release tags/roman numerals/season markers; de-hardcode paths
...
feat(bot): button menu, capacity/open-reg quota, redemption codes, user mgmt,
account expiry + signin streak, device anti-sharing + inactivity cleanup,
one-click kick, self-service username/password
- Consolidate organize/rename defaults into Tools panel
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-06-07 09:54:14 +08:00
soldosluka857
f1d87638f3
fix(subscription): apply rules on RSS path, dedup movies via library, MoviePilot-style default excludes
...
- runOne (RSS) now applies matchesSubscriptionRules so ExcludeWords/Resolution/Quality/Effects/ReleaseGroups take effect (previously only the Filter regex ran, so editing 排除 had no effect on RSS subscriptions)
- movie candidate selection now consults library availability: non-wash subscriptions skip titles already in the library, stopping repeated downloads of 10bit/Dolby releases (aligns with MoviePilot 'download once = satisfied')
- add MoviePilot-style default exclude list (cam/ts/枪版/trailer/sample...) merged with user excludes; latin tokens matched on word boundaries to avoid substring false positives
- frontend: send rule fields as raw strings on edit so 排除词 can be cleared/changed (was dropped by '|| undefined')
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-30 23:14:22 +08:00
ShukeBta
de3f1f3bb4
fix: honor licensed user limits
2026-05-30 21:48:09 +08:00