truewhile
|
cd1297a30f
|
添加弹幕功能
添加弹幕功能
|
2026-08-24 00:37:25 +08:00 |
|
ShukeBta
|
f436267572
|
fix(media): stabilize series grouping across library layouts
|
2026-08-10 19:16:19 +08:00 |
|
ShukeBta
|
19381eb270
|
Fix media classification scraping and Chinese naming
|
2026-07-15 20:45:24 +08:00 |
|
ShukeBta
|
0493823b99
|
fix legacy library scan and empty pages
|
2026-07-01 22:54:13 +08:00 |
|
ShukeBta
|
941bb273b9
|
fix media organize and subscription workflows
|
2026-06-30 20:18:02 +08:00 |
|
ShukeBta
|
a97dc35790
|
fix: stabilize library paths and subscription matching
|
2026-06-28 12:15:10 +08:00 |
|
ShukeBta
|
41f39d9701
|
fix review regressions in titles and strm paths
|
2026-06-27 16:07:30 +08:00 |
|
ShukeBta
|
e22b537de4
|
fix library deletion and strm path handling
|
2026-06-27 15:58:15 +08:00 |
|
ShukeBta
|
b2c04bb7b6
|
fix: clean media classification and series grouping
|
2026-06-25 05:37:31 +08:00 |
|
ShukeBta
|
7efa5d20b0
|
fix: tighten frontend quality checks
|
2026-06-25 04:33:41 +08:00 |
|
ShukeBta
|
3d3679c21c
|
fix: prevent episode metadata from splitting series
|
2026-06-25 02:32:55 +08:00 |
|
ShukeBta
|
e56eed0758
|
fix: improve discover and manual scrape controls
|
2026-06-24 15:56:35 +08:00 |
|
ShukeBta
|
6be3409e3e
|
fix: improve discover and series special handling
|
2026-06-24 14:49:26 +08:00 |
|
ShukeBta
|
34c9cb4244
|
fix: improve discover and manual scrape flows
|
2026-06-24 13:58:04 +08:00 |
|
ShukeBta
|
192f35d9fa
|
refactor: split modules and harden scraping workflows
|
2026-06-24 11:59:18 +08:00 |
|
ShukeBta
|
dff19801b6
|
fix(series): 彻底修复剧集被按单集显示且无法修复
根因(用真实数据确诊, 两个互相独立):
- Web 端拆集: episode NFO 的 <uniqueid type=tmdb> 是【单集 episode id】、
<title> 是【单集名】, mergeEpisodeMetadata 却无条件覆盖了整剧 tm_db_id /
original_name → 同剧每集 id/原名各不相同, 被 getSeriesKey 按 tmdb_id 拆成
N 张单集卡(实测「遮天」90 集 = 89 个不同 tmdb_id)。
- Emby 散装单集: 电影库混入按 Season/SxxE 整理的剧集结构内容, 被判成 Episode
却因 movie 库不聚 Series 而漏成散装单集。
- 无法修复: EnrichLibrary 只处理 pending/no_match, 跳过 matched 脏行。
修复:
- local_metadata.mergeEpisodeMetadata: 单集 NFO 的外部 id 不再写入整剧字段,
单集名不再污染 original_name; 整剧 id/原名只认 tvshow.nfo。
- groupSeries.ts: 剧集分组改「库+路径剧名」优先(整剧目录对全剧一致), 外部 id
仅作回退, 对存量脏数据也能合并。
- emby_compat: 电影库常规浏览新增 movieLibraryItems, 把剧集结构内容聚成 Series
卡片与真电影并列(方案 B), 不再漏散装单集。
- cloud_path_repair: 「修复+重刮」先把脏的 matched 剧集行重置为 pending 再重刮,
使其能被重新刮削; 结果新增 reset 计数。
- 新增 NormalizePollutedEpisodeMetadata 启动迁移(幂等): 按整剧目录聚合, 清洗
tmdb/原名散乱的剧组并重置 pending。
测试: local_metadata/emby_compat/cloud_path_repair/episode_metadata_cleanup
新增或更新断言; 修正 scanner_cloud_test 中依赖旧错误行为的用例。
|
2026-06-20 01:04:19 +08:00 |
|
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
|
fea1b1dda1
|
Fix PostgreSQL migration resume and home crash guard
|
2026-06-15 20:13:30 +08:00 |
|
ShukeBta
|
fd0428ee7d
|
fix cloud library mounts and artwork caching
|
2026-06-10 20:43:42 +08:00 |
|
ShukeBta
|
2f7ec3ab17
|
fix: group local search series results
|
2026-05-29 10:55:01 +08:00 |
|
ShukeBta
|
00b9c1bb79
|
fix: refresh library artwork previews
|
2026-05-29 10:13:34 +08:00 |
|
ShukeBta
|
32ccb33fed
|
Fix local adult metadata and watch history removal
|
2026-05-28 14:52:20 +08:00 |
|
ShukeBta
|
352edd86ed
|
Fix series selection playback and query cleaning
|
2026-05-28 08:47:49 +08:00 |
|
ShukeBta
|
3a2db6bdd9
|
feat: Emby 兼容层完整实现 + 多模块功能增强
## Emby/Jellyfin 兼容层 (emby_compat.go / emby.go)
- 新增 SystemInfoPublic、FindUser、Items、Item、LatestItems、ResumeItems
- 新增 SetFavorite、MarkPlayed、RecordProgress 用户播放状态同步
- 新增 itemPayload、mediaSource、mediaStreams 媒体信息组装
- 双前缀路由 /emby/* 和 / 根路径,兼容 Infuse/Yamby/Senplayer/Kodi
- 新增 Ping、SystemEndpoint、AuthByName 端点
- emby.go 扩展对应 handler 函数
## 站点适配器 (site_adapter.go / site.go)
- SiteConfig 扩展 UserAgent/Timeout/Extra/FlareSolverrURL 字段
- doRequest() GET 请求支持 FlareSolverr 代理绕过 Cloudflare/WAF
- MTeam api_key 认证改为 Authorization: Bearer 格式
- Search() 重构为 sync.WaitGroup 并发执行,提升多站搜索性能
- siteModelToConfig() 改为 SiteService 方法,按 BrowserEmulation 填充 FlareSolverrURL
## 图片代理 (image_proxy.go)
- 重构图片代理服务,支持更多来源和缓存策略
## 下载管理 (downloads.go / download_clients.go / qbittorrent.go)
- 下载任务增强:状态管理、进度追踪优化
- qBittorrent 客户端连接稳定性改进
## 刮削与数据库 (scraper.go / tmdb.go / repository.go)
- 刮削器增强 TMDB 集成,补全元数据字段
- repository 扩展查询方法
## 前端 (web/src/)
- HomePage: 首页布局重构,按媒体库分组展示,系列聚合优化
- DiscoverPage: 发现页增强,错误处理改进(API key 缺失/网络错误分离)
- PosterWallPage: 海报墙优化,系列聚合展示
- MediaCard: 媒体卡片优化
- PlayerPage: 播放器改进
- 新增 utils/groupSeries.ts: 系列聚合工具函数
- .gitignore: 添加 .tmp_* 临时文件排除规则
|
2026-05-26 16:09:13 +08:00 |
|