truewhile
6a72e7ab82
Merge pull request #6 from truewhile/cursor/frontend-nav-mobile-af8f
...
Improve mobile navigation and fix playlists page routing
2026-09-02 10:44:10 +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
github-actions[bot]
0320d956ed
chore: bump version to 0.0.68 [skip ci]
mmtl-v0.0.68
2026-09-02 02:23:41 +00:00
truewhile
95395c479a
优化前端返回导航与移动端操作体验
...
优化前端返回导航与移动端操作体验
2026-09-02 10:23:30 +08: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
github-actions[bot]
1171fe9464
chore: bump version to 0.0.67 [skip ci]
mmtl-v0.0.67
2026-09-02 02:09:43 +00:00
truewhile
06b96102c8
Merge pull request #4 from truewhile/cursor/rewrite-readme-af8f
...
更新 README 与 Docker 镜像为 truewhile 仓库
2026-09-02 10:09:31 +08:00
Cursor Agent
077458df31
Update Docker images to ghcr.io/truewhile/mmtl
...
Replace legacy shukebta/shukbet image references across all compose
templates, system update defaults, and security docs.
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 01:59:48 +00:00
github-actions[bot]
9124c9be9c
chore: bump version to 0.0.66 [skip ci]
mmtl-v0.0.66
2026-09-02 01:56:22 +00:00
truewhile
3ae3c6540d
重写 README:更新 fork 说明与当前项目描述
...
重写 README:更新 fork 说明与当前项目描述
2026-09-02 09:56:06 +08:00
Cursor Agent
313ebdd402
Rewrite README for truewhile fork and current feature set
...
- Clarify fork lineage from MediaStationGo
- Document current capabilities: Emby mounts, STRM queues, task queue, etc.
- Add acknowledgements for MediaStationGo and qmediasync
- Update repo/image URLs to truewhile/MMTL
- Streamline deployment docs while keeping essential guidance
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 01:53:59 +00:00
github-actions[bot]
db52792ada
chore: bump version to 0.0.65 [skip ci]
mmtl-v0.0.65
2026-09-02 01:49:22 +00:00
truewhile
a8065680bb
优化首页/媒体库加载速度与 SQLite 查询性能
...
优化首页/媒体库加载速度与 SQLite 查询性能
2026-09-02 09:49:07 +08:00
Cursor Agent
3304f09b1d
Fix Auto Docker workflow failing on pull requests
...
The publish workflow bumps VERSION, pushes commits/tags, and publishes
images. It must not run on pull_request events where checkout is a
detached HEAD and git push fails. PR validation is already covered by ci.yml.
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 01:45:32 +00:00
Cursor Agent
ba621cfc4a
Optimize home/library loading and SQLite query performance
...
- Replace home preview N+1 queries with a single window-function batch query
- Cache library previews and series card lists (15s TTL, shared with media cache)
- Tune SQLite: larger page cache, mmap, wal_autocheckpoint, ANALYZE on migrate
- Defer history fetch on library page until last_played sort is selected
- Yield to browser between paginated library loads to keep UI responsive
Co-authored-by: truewhile <truewhile@users.noreply.github.com >
2026-09-02 01:39:28 +00:00
github-actions[bot]
deca7735a7
chore: bump version to 0.0.64 [skip ci]
mmtl-v0.0.64
2026-09-01 15:16:32 +00:00
truewhile
b503fdee7a
优化续播
2026-09-01 23:16:11 +08:00
github-actions[bot]
3fe37e050b
chore: bump version to 0.0.63 [skip ci]
mmtl-v0.0.63
2026-09-01 14:43:48 +00:00
truewhile
d3233a62c0
优化
2026-09-01 22:43:30 +08:00
github-actions[bot]
165eee7b36
chore: bump version to 0.0.62 [skip ci]
mmtl-v0.0.62
2026-09-01 13:25:14 +00:00
truewhile
78526afc9c
优化
2026-09-01 21:24:55 +08:00
github-actions[bot]
f534e0607a
chore: bump version to 0.0.61 [skip ci]
mmtl-v0.0.61
2026-09-01 10:55:32 +00:00
truewhile
db64a6c093
优化
2026-09-01 18:55:05 +08:00
github-actions[bot]
5c9e7fcaa6
chore: bump version to 0.0.60 [skip ci]
mmtl-v0.0.60
2026-09-01 08:26:41 +00:00
truewhile
af67f4cd6e
优化
2026-09-01 16:26:25 +08:00
github-actions[bot]
73de139d1f
chore: bump version to 0.0.59 [skip ci]
mmtl-v0.0.59
2026-09-01 06:33:57 +00:00
truewhile
e0cc481b96
Merge pull request #1 from truewhile/beta
...
添加emby挂载功能,整合上传,下载,刮削队列到任务队列
2026-09-01 14:33:38 +08:00
truewhile
7ac75ec69a
fix: 修复 beta CI 失败的两个平台/网络敏感测试
...
- TestSanitizePathWithSpecialChars:Windows 盘符断言按 runtime.GOOS 分支
(Linux 下反斜杠统一为分隔符,期望 D/test/...)
- TestEnrichOneAdultScrapesArtwork:AdultProvider 改用 RoundTripper 全量
mock,拦截所有外网请求(CI 环境可达 javdb/dmm 时会把真实封面写入
断言导致失败);断言放宽为封面路径后缀
2026-09-01 14:22:52 +08:00
truewhile
0e73e43cbd
ci: 新增 beta 分支自动构建流水线
...
- 触发:push beta / PR 到 beta / 手动触发
- test-and-build:SPA 构建 + go vet/test/build + 三平台交叉编译
(linux/amd64、linux/arm64、windows/amd64),版本号为
{VERSION}-beta.{sha},二进制上传为 artifact
- docker-beta:多架构构建并推送 ghcr.io/{owner}/mmtl:beta
(PR 事件不推镜像,仅推送 beta / 手动触发时推)
- 与 main 的发布流隔离:不做版本递增、不打 release tag
2026-09-01 14:12:31 +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
5a5555d28a
fix: 远程 Emby 无图条目不再下发无效图片 URL(封面破图修复)
...
- 远程条目仅当 ImageTags 含 Primary/Backdrop 时才生成图片 URL;
无图条目 poster_url 为空,前端走 No Poster 优雅占位而非裂图
- 剧集海报回退使用 Emby 的 SeriesPrimaryImageTag(Fields=SeriesPrimaryImage),
仅当系列真实有图时才回退,避免连环无效请求
- 列表/剧集接口带 SeriesPrimaryImage 字段
2026-09-01 13:26:57 +08:00
truewhile
4dc9cbe2e7
feat: 网页端完整浏览/播放远程 Emby 挂载库
...
- 后端新增远程库→本地结构映射(emby_remote_web.go):Library/Media/SeriesCard
与本地完全同构,前端无感知
- /api/libraries(含 with_preview)、/api/libraries/:id、/api/libraries/:id/media、
/api/libraries/:id/series、/api/libraries/:id/series/episodes、/api/media/:id、
/api/media/:id/episodes 全部支持远程伪装 ID 透传映射
- /api/stream/:id 对远程条目 302 直连远程 Emby 原地址(播放不经过本机)
- 库内容按 CollectionType 过滤(电影库取 Movie、剧集库取 Series),
RecursiveItemCount 作为系列集数;修复伪装 ID 双重编码导致的图片/详情 500
- SPA fallback 放行 /library/embyremote~ 前缀(不再被当作 Emby API 路由 404)
- 前端:远程库/条目标记 is_remote_emby,隐藏扫描/刮削/编辑/NFO/回收站/
HLS 转码等不适用操作;后台管理面板过滤远程库
2026-09-01 11:32:54 +08:00
truewhile
6af0e5fdcf
fix: Emby 远程挂载播放地址强制下发 + 凭据状态显示修正
...
- PlaybackInfo 始终构造 DirectStreamUrl(远程 PlaybackInfo 默认不带该字段,
此前客户端拿不到播放地址):默认指向远程 Emby 原地址(不代理),
开启代理时指向 MMTL /Videos/{encoded} 反代端点
- HasStrmAccountCredential 对 emby_remote 放宽为 url+用户名/密码 即视为
已配置(此前只认 api_key,导致列表误显示「凭据:未配置」)
2026-09-01 11:06:36 +08:00
truewhile
f0055b76fe
fix: Emby 远程挂载账号编辑保留凭据 + 代理开关回显
...
- UpdateStrmAccount 对 emby_remote 做合并式更新:只覆盖传入键,未提及的
地址/用户名/密码/token 密文保留,避免编辑代理开关时清空凭据
- 账号列表/编辑表单回显 proxy_play(服务端解密后下发)
- 前端 StrmAccount 类型与编辑对话框支持 proxy_play 回显
2026-09-01 10:45:52 +08:00
truewhile
0eb3f104f4
feat: Emby 远程挂载(联邦聚合)功能 beta
...
- 新增 emby_remote 提供方:通过 STRM 账号体系配置远程 Emby 地址/用户名/密码
- EmbyService 聚合远程媒体库 Views/Items/详情/最近添加/全局搜索,远程数据不落库
- 条目 ID 统一伪装为 embyremote~{account}~{id},请求按账号路由回远程
- 播放支持账号级 proxy_play 配置:默认客户端直连远程;开启后由 MMTL 反向代理流/字幕
- 图片/元数据全部实时透传远程,播放状态(已看/收藏)透传回远程 Emby
- cloud 包新增 emby Provider(Ping/List/Resolve),账号测试/目录浏览自动生效
- 前端 STRM 页面支持 Emby 远程挂载账号(地址+凭据+代理开关)
2026-09-01 10:44:01 +08:00
github-actions[bot]
c171b38155
chore: bump version to 0.0.58 [skip ci]
mmtl-v0.0.58
2026-08-30 14:32:56 +00:00
truewhile
89d7a6cbb2
优化
2026-08-30 22:32:39 +08:00
github-actions[bot]
85918d1196
chore: bump version to 0.0.57 [skip ci]
mmtl-v0.0.57
2026-08-30 13:41:17 +00:00
truewhile
fa9307e2e1
优化
2026-08-30 21:40:58 +08:00
github-actions[bot]
5ab18c2725
chore: bump version to 0.0.56 [skip ci]
mmtl-v0.0.56
2026-08-30 12:05:41 +00:00
truewhile
a4a2bde1a4
优化
2026-08-30 20:05:27 +08:00
github-actions[bot]
28113f5fdc
chore: bump version to 0.0.55 [skip ci]
mmtl-v0.0.55
2026-08-30 10:50:29 +00:00
truewhile
42b8805e94
优化
2026-08-30 18:50:15 +08:00
github-actions[bot]
51a64f41b9
chore: bump version to 0.0.54 [skip ci]
mmtl-v0.0.54
2026-08-30 09:28:16 +00:00
truewhile
a7bd9a942c
优化显示
2026-08-30 17:28:00 +08:00
github-actions[bot]
97491a6175
chore: bump version to 0.0.53 [skip ci]
mmtl-v0.0.53
2026-08-29 14:16:40 +00:00
truewhile
ea5cb3a130
优化
2026-08-29 22:16:21 +08:00
github-actions[bot]
921010926b
chore: bump version to 0.0.52 [skip ci]
mmtl-v0.0.52
2026-08-28 14:38:24 +00:00
truewhile
7425c3d57b
优化
2026-08-28 22:38:09 +08:00