truewhile
bd3d4ad357
Add favourite buttons to library list and series detail pages ( #13 )
...
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 13:48:25 +08:00
truewhile
638dae0c91
fix(layout): hide duplicate media nav in mobile drawer ( #11 )
...
On narrow screens the media drawer duplicated bottom navigation and
user menu links (home, libraries, favourites, playlists, history).
Show only management links in the drawer when browsing media.
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 11:35:44 +08:00
truewhile
2b7828e1fe
fix: close user menu on navigation and outside click ( #8 )
...
Portal the profile dropdown to document.body with a full-screen backdrop
so clicks outside reliably dismiss it above transformed page layers. Also
close the menu whenever the route changes.
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 11:02:41 +08:00
truewhile
2fc2c17b05
fix: prevent mobile sidebar nav items from stacking on short screens ( #7 )
...
Narrow drawers rendered media links in a flex-1 overflow region above a
non-shrinking admin block, so the browse items were clipped into a
compressed active pill. Scroll media and admin together, and distinguish
/libraries from /libraries?from=admin when highlighting.
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 10:48:58 +08:00
Cursor Agent
4ebd477ca2
Fix playlists route matching /play and improve playlists page UI
...
- Add isPlayerRoute() so /playlists no longer hides header and bottom nav
- Add mobile back navigation for playlists, favourites, and history
- Redesign PlaylistsPage with PageHeader, empty state, and card list
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 02:30:14 +00:00
Cursor Agent
eba7904c99
Improve frontend navigation and mobile UX
...
- Add mobile bottom tab bar for media browsing (Home, Libraries, Favourites, Playlists, More)
- Split mobile drawer: media links first, admin links under a Management section
- Show contextual back button in mobile header for deep routes
- Add reusable PageBackButton and PageHeader components
- Add back navigation to playlist detail, library page, and missing media state
- Embed queue panels in TaskQueuePage to avoid duplicate page titles
- Expose theme toggle in user menu on small screens
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 02:19:25 +00:00
truewhile
db64a6c093
优化
2026-09-01 18:55:05 +08:00
truewhile
bd41ab3fb4
feat: 整合刮削/下载/上传队列为统一的「任务队列」
...
- 新增 /queue 任务队列页:全部 / 刮削 / 下载 / 上传 类型 Tab(URL 参数
?type= 同步),Tab 上实时显示各自任务计数徽章
- 「全部」视图纵向堆叠三类队列,单类视图直接复用原队列组件
(ScraperQueuePage / StrmQueuePanel,后者已导出)
- 侧边栏导航:删除「刮削队列 / 下载队列 / 上传队列」三个入口,合并为
「任务队列」单一菜单项;旧路由 /scraper/queue、/strm/downloads、
/strm/uploads 保留直达
2026-09-01 14:02:25 +08:00
truewhile
73b95a8e38
feat: Emby 挂载独立管理(媒体库级选择挂载 + 每库代理开关)
...
- 新增 EmbyMount 表与 /admin/emby/mounts CRUD:把远程 Emby 的媒体库按需
挂载到本项目(同一服务器可选择性挂载/全量挂载),代理开关下沉到每个
挂载(一个 Emby 服务器可部分库代理、部分库直连)
- 伪装 ID 改为 embyremote~{mountID}~{remoteID}:播放/详情/状态/图片链路
全部经 ResolveMount 解析挂载与账号
- 新增「Emby 挂载」独立菜单页(/emby-mount):账号管理(添加/测试/编辑/
删除)+ 挂载列表(代理切换/停用/取消)+ 选择挂载对话框(多选+全量)
- STRM 管理页过滤 emby_remote 账号;账号表单移除 emby 类型
- Boot 幂等 AutoSeedMounts:旧 emby 账号自动全量挂载(沿用旧代理配置),
升级后媒体库不消失
- 修复:远程流请求注入浏览器 UA(防 Cloudflare 风控)+ 代理强制 Static=true
(阻止远程 ffmpeg 转码调度,反代纯字节中继)
- 全局搜索改为按挂载逐个搜索(结果归属与伪装 ID 正确)
2026-09-01 13:53:15 +08:00
truewhile
fa9307e2e1
优化
2026-08-30 21:40:58 +08:00
truewhile
a4a2bde1a4
优化
2026-08-30 20:05:27 +08:00
truewhile
42b8805e94
优化
2026-08-30 18:50:15 +08:00
truewhile
ea5cb3a130
优化
2026-08-29 22:16:21 +08:00
truewhile
6e8eac9887
优化
2026-08-27 23:40:12 +08:00
truewhile
019ecbec7b
优化
...
优化
2026-08-25 19:18:49 +08:00
truewhile
2355419ef9
优化
...
优化
2026-08-25 19:05:59 +08:00
truewhile
efa64051ea
优化
...
优化
2026-08-25 16:39:47 +08:00
truewhile
da1fb02c9d
优化
...
优化
2026-08-25 14:12:59 +08:00
truewhile
c514fb360e
优化
...
优化
2026-08-24 23:06:35 +08:00
truewhile
8b0260e0e1
优化
...
优化
2026-08-24 20:11:03 +08:00
truewhile
44ca451cd4
优化
...
优化
2026-08-24 17:40:43 +08:00
truewhile
c55d29ae84
添加strm生成
...
添加strm
2026-08-24 14:36:17 +08:00
truewhile
cd1297a30f
添加弹幕功能
...
添加弹幕功能
2026-08-24 00:37:25 +08:00
truewhile
71bf60c69c
初始化
...
初始化项目
2026-08-23 22:12:32 +08:00
truewhile
65d1ad5ae5
优化番号处理逻辑,添加对MetaTube的支持
...
优化番号处理逻辑,添加对MetaTube的支持
2026-08-21 00:06:49 +08:00
truewhile
d4c753b08a
优化
...
优化
2026-08-20 20:52:34 +08:00
truewhile
d368353656
修改刮削逻辑,添加保存元数据功能
...
修改刮削逻辑,添加保存元数据功能
2026-08-20 11:24:40 +08:00
ShukeBta
06b25564ea
Add library covers and configurable footer visibility
2026-07-16 13:17:52 +08:00
ShukeBta
b610dda098
fix: align scraped media naming and release sorting
2026-07-03 02:55:33 +08:00
ShukeBta
0493823b99
fix legacy library scan and empty pages
2026-07-01 22:54:13 +08:00
ShukeBta
a97dc35790
fix: stabilize library paths and subscription matching
2026-06-28 12:15:10 +08:00
ShukeBta
a2be6a2127
fix library display and docker compose update
2026-06-27 16:54:33 +08:00
ShukeBta
93be60ed99
add docker hot update management
2026-06-26 13:02:40 +08:00
ShukeBta
65adca04df
fix media workflows and download organization
2026-06-26 08:42:16 +08:00
ShukeBta
89af1dad32
refactor: split layout shell sections
2026-06-25 07:57:01 +08:00
ShukeBta
3419077b67
refactor: split manual scrape dialog
2026-06-25 06:13:59 +08:00
ShukeBta
7efa5d20b0
fix: tighten frontend quality checks
2026-06-25 04:33:41 +08:00
ShukeBta
e56eed0758
fix: improve discover and manual scrape controls
2026-06-24 15:56:35 +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
efca3cbe69
fix media playback and library workflows
2026-06-21 12:53:52 +08:00
ShukeBta
b40e2c7280
fix: 订阅恢复补缺集/单媒体手动整理入口/媒体库排序/网盘媒体分类迁移
...
- 订阅(问题1): selectPreparedSubscriptionCandidates 在本地已有部分集时不再
无条件丢弃整季/全集包,单集候选不足时用全集包兜底;Restore 重置 total_episodes
让下次 run 从权威元数据重算,避免被 feed 低估值锁死误判'无缺集'
- 单媒体整理(问题2): 后端已具备,新增 OrganizeMediaDialog 组件并在媒体详情页
接入'整理入库'按钮(可选类型/二级分类/目标路径/转移方式/预览)
- 媒体库排序(问题3): ListByLibrariesFiltered 改多级排序 year/updated_at/
created_at/id,id 作稳定 tie-breaker 消除云盘批量扫描同批时间戳的随机观感
- 网盘媒体消失(问题4): 云盘媒体 upsert 时允许 library_id 迁移到重新挂载的
更精确分类库(本地媒体物理位置固定不迁移),修复一键挂载子目录后媒体消失
2026-06-19 21:29:02 +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
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
ab4637beed
Update MediaStationGo branding and deployment docs
2026-06-17 16:01:16 +08:00
ShukeBta
2ad9606ad5
fix full library display and cloud search visibility
2026-06-11 18:50:05 +08:00
ShukeBta
0bf983cec8
fix: improve cloud mount scanning feedback
2026-06-10 18:46:30 +08:00
ShukeBta
eab8c3c709
feat: add clouddrive2 storage bridge
2026-06-09 20:22:00 +08:00