Repository navigation
Releases: desstg/mypan
Release list
v2.9.6
番号海报墙 · 本地目录:三个修复
分类 tab 不再被平铺目录吞掉
本地目录如果是混合形态 —— Japan/ 国产/ VR/ 这样的分类,外加一个直接摆着视频的目录 —— 以前那一个目录会把其它分类全吞掉,界面上只剩「全部」。
根因是分类判据写成了全局 OR:任何一个一级目录直接躺着载体,整面墙就判成两层库、一颗 tab 都不建。
现在逐个一级目录判:只要有分类目录(自己不躺片子、片子全在下一层),而且直接躺在一级目录下的片子是少数,分类 tab 就照常出现。比例闸同时挡住「两层库 + 一个带子目录的作品 → 几百个 tab」那个老回归。
一个目录里塞二十几个视频本身不是推荐形态,正常还是一个目录一部片,那种目录请自己整理一下。
预告片 / 花絮 / 样例目录不再冒充作品
作品目录里的 trailers/(Kodi 的预告片约定)、extras/、sample/ 这些附属目录里也有视频,以前会被当成独立作品摊到墙上 —— 这些卡片本来就配不到海报,看到的现象就是「有些海报能显示,有些不能」。
现在扫墙时整目录跳过这一类附属目录(extrafanart/ extrathumbs/ 一并跳过)。
真机那棵树上这类假卡有 676 张,去掉之后只剩 990 张真实卡片。
认知「与视频同名」的图片
别的工具(Emby、Kodi、各家整理脚本)刮出来的库,最常见的形态是图片与视频同名:ABF-002.mp4 旁边一张 ABF-002.jpg。它既不是 poster.jpg,也不是 ABF-002-poster.jpg。
- 卡片现在认它,详情抽屉也认它 —— 以前抽屉那头只找 poster / thumb,会出现「网格上有图、点开抽屉是空的」。
- 找图顺序理顺了:每张卡先认自己那份同名图,目录级那张图只在都找不到时才兜底,免得一整个目录的卡片共用同一张别人的海报。
<主干>.jpg 这一档只给海报位(它在 Emby 里是「主图」,贴进 3:2 的缩略图框会变形)。
真机验证
X:/favorite(1666 个条目、混合库):
| 项 | 结果 |
|---|---|
| 真实卡片 | 990(去掉 676 张预告片假卡) |
| 分类 tab | 7 颗 —— Japan 681 / FC2 140 / VR 80 / 国产 38 / wuma 23 / 4K 22 / 国外 6 |
| 有海报 | 978 |
| 无海报 | 12(磁盘上确实没有图,不是代码问题) |
| 共用同一张海报 | 只剩多分片(cd1/cd2…)那 15 组,符合预期 |
镜像
docker pull desstg/mypan:v2.9.6
latest 同步更新。
v2.9.5
v2.9.5
这一版让番号海报墙的「本地目录」真正能用在纯视频库上:mp4 / mkv 这些真实视频文件也能列出海报、走在线刮削、点开就能播,演员墙也会把它们算进去。另外目录整理多了「同集重复就移进冗余目录」,TMDB 详情抽屉的集数格子会自己刷新。
番号海报墙:本地目录支持 mp4 / mkv 等真实视频
以前「海报墙 · 本地目录」只认 .strm 文件,把一批 mp4 / mkv 的番号库挂上去,墙上一部片都没有。判据散落在墙、详情、刮削、删除、侧车守卫、平铺判定六处,纯视频库在每一个环节都静默为空。
现在判据统一收在一处,两种载体一视同仁:
- 墙上能列出这些片,海报、缩略图、nfo、侧车角标照常认;
- 点开详情抽屉有播放键,视频由本应用直接送出去(支持 Range,能拖进度条);
- 同一部片的
.strm与.mp4并存时只出一张卡,不会算成两部。
支持的格式就是 STRM 设置里那一串:mkv、mp4、avi、ts、mov、wmv、iso、m2ts、rmvb、flv、m4v、webm。
顺带修好三处同类静默失效:侧车守卫对纯视频库返回零值(每轮 cloud_primary 会把本程序写的 nfo / 图 / 字幕删掉)、「补简介」硬拼 stem+".strm" 导致纯视频库永远 no-op、详情抽屉的源文件大小对纯视频库恒为 0。
纯视频库也能在线刮削、删一部
在线刮削以前扫不到纯视频库(它按 .strm 找目标),现在按磁盘上那个真实的视频文件名去找,补回来的 nfo、海报、缩略图、背景图、字幕都写在正确的位置。
「删除一部」的清单里也会列出那个 mp4 本身 —— 这一步是真删,删之前请看清清单。
番号从哪来仍然是按番号不按文件名:侧车的 number、nfo 的 num、再不行才从主干里拆。
演员墙包含本地目录里的片
演员墙以前只看 STRM 任务的产出,本地目录挂进来的片不在里面。现在所有番号类型的数据源都会参与聚合,在演员页点进去也能看到这一类库里的作品。
目录整理:同集重复移入冗余目录
同一集常常有好几个版本(1080p / 2160p、不同压制组),文件名完全不同,以前「目标已存在同名」这个判据看不见它们,于是两份都进了目标目录,Emby 里同一集出现两遍。
现在按集号收口:目标目录里已经有这一集时,这一份不再进目标,而是移到整理目标根目录下的「冗余」目录里,方便一次性删掉。同一批里有好几份同一集时,只留清晰度最高的那一份进库。
两个开关在目录整理设置页:「同集重复时移入冗余目录」(默认开)和「冗余目录名」(默认叫 冗余,可以改)。打开「同名冲突时覆盖」时改为按清晰度洗版 —— 新的更清楚就替换掉目标里那一集,不再往冗余里堆。
STRM 扫描会无条件跳过冗余目录,不会把重复集又搬回 Emby;顺带修好 115 全量清单模式下排除词完全不生效的问题。
TMDB 详情抽屉:集数格子会自己刷新
剧集详情抽屉里现在有一排集数格子:绿色是已入库,橙色虚线是已播但还没收到,灰色是还没播。
这一份是打开抽屉那一刻按磁盘现算的,之后每十几秒自己刷新一次 —— 订阅刚推下来一集,格子不用关窗重开就会变绿。
升级说明
直接拉新镜像即可,无数据库迁移。
docker pull desstg/mypan:v2.9.5Windows 版(免安装)
不想用 Docker 的话,这版也提供 Windows 可执行文件,在下面 Assets 里下载
mypan-v2.9.5-windows-amd64.exe。
mypan-v2.9.5-windows-amd64.exe --listen 0.0.0.0:5211 --data-dir "D:\mypan\data"
- 需要 Windows 10 / 11 x64,双击或用上面的命令行启动;
- 数据(数据库、日志、STRM 输出)默认落在 exe 同级的
data与strm目录,
建议用--data-dir指定到别处,升级时只替换 exe 即可; - 首次启动用默认管理员账号
admin/admin登录,进后台后立刻改密码; - 云盘 FUSE 挂载那套在 Windows 上不可用(Linux 专属),用 115 / 夸克这类
网盘请走 Docker 版。
SHA256:D0546213891A4E28A70181A753A750132EE7509D9647DCA9E7616B211130103B
🤖 Generated with Claude Code
v2.9.4
这一版
两件让人看着别扭的事:
- 电视剧目录里同一集会堆好几份
.strm—— 现在一集只留一个。 - 番号演员墙翻到底就只有 60 位 —— 现在能一直翻完。
同一集不再生成好几份 .strm
以前同一个目录里会出现好几个 .strm 指向同一集。这不是命名问题:网盘上真的每集存着好几份不同画质的文件(一份 1080p、一份 2160p…),而旧逻辑只合并「文件名完全相同、只有后缀不同」那种情况。
现在按「哪一季哪一集」收口,一集只留一个 .strm。挑哪一份:
- 先比分辨率(2160p 优先于 1080p)—— 不按体积单排,因为 1080p 高码率经常比 2160p 还大;
- 分辨率一样才按同名冲突策略(默认大文件优先);
- 最后按文件名兜底,保证每次扫描结果一致。
被合并掉的只是 .strm 这一个文本文件,网盘上的视频一个都不会动。
已经生成出来的重复不会自己消失 —— 要跑一次「更新」或「全量」扫描才会清掉(「补缺」模式只补不删)。
新增设置:同集洗版(默认关)
STRM 设置页多了一个「同集洗版」:
- 关着(默认):本地已经有的那一集不动,只在第一次生成时挑最清楚的那份,这样 Emby 已经认下来的集不会因为重扫就换掉。
- 打开:永远留最清楚的那份,更好的画质出现就替换旧的
.strm。
番号影片任务不走这套 —— 番号是一串片,不是一部剧的多集,合并会把不同番号并成一份。
演员墙:一直往下翻,不会再卡在 60 位
番号海报墙点开的演员页固定在第一页不动,看着像「只有 60 个演员」。实际是列表底部那个「滚到底继续加载」的观察器没挂上:观察它的时候列表还在「加载中」状态,那个位置根本不存在,于是静默失效,之后再也没补挂。
现在先让列表落定、再挂观察器;关掉演员页再打开也照常能翻(重开是新的页面,观察器会跟着重建)。底部那行字会告诉你还剩多少位,翻完显示「已全部加载」。
v2.9.3
番号演员墙
把所有番号墙(每个番号任务、每个挂上来的番号本地目录)上的演员聚成一页,卡片大小与番号海报墙一致。入口是番号海报墙页头那颗人像图标 —— 只在番号墙上出现,切到 TMDB 那几档墙时整颗不渲染。
列出来的每一位,都至少有一部片真的在墙上。数据全部来自那些影片自己的侧车 json 与 nfo,不是上游的演员库。
搜索与筛选
搜索框按名字过滤,主名用索引表里的中文统一名。默认隐藏男演员。
详情里的别名(日文原名、罗马音、旧艺名)点一下就拿去搜。以前点别名经常搜出空列表 —— 别名常来自上游,而墙上的搜索索引里没有那个写法。现在点别名等于点名找这一位,结果与搜主名完全一样。
资料档案
侧车与 nfo 只有名字、性别、头像,资料是另外查的:
- avbase + JAVDB 拼出生年月、出身地、身高三围、罩杯、血型、爱好与别名;
- 维基百科补一段介绍(导言),优先取中文条目,没有中文条目才用日文原文并标注「日文原文」;
- 认人这一步是逐字核对条目标题、并且要求导言里确实提到是演员 —— 不会把同名历史人物的介绍贴到演员头上。
查到的结果缓存一天,第二次打开是秒开的。列表页只给索引表拼得出来的那批零网络头像,其余由前端进页面后并发 3 在后台补。
头像更清楚了
以前头像最大也就 300 像素(有的源只给 90 像素),放大看是糊的。现在详情抽屉优先用维基条目首图(960 宽),取不到再一路退回小图、TMDB、侧车那张。
海报墙上的卡片仍然用小图:一屏几十张,拉大图是白花流量,而那里只有一百多像素宽,看不出区别。
从影片详情点演员
在番号海报墙点开一部片,详情里的演员那一格现在是按钮,点一下进入这位演员的详情,关掉回到这部片。这一层压在影片详情之上,Esc 一层一层关。
其他
番号海报墙页头的「本地目录」入口从带文字的按钮改成图标按钮,与右侧那排图标同一套观感。
v2.9.2
v2.9.2
番号海报墙:右键分类,一次选上整个分类
- 分类标签上右键 → 「全选本分类 / 取消本分类」,批量选择没开时不弹菜单
- 范围是整个分类(含已刮过的、含隐藏的),按钮显示「刮削选中(欧美 88)」
- 服务端按分类收集目标,复用快照不递归整根,不受 2000 部上限约束
items在整档模式下翻面成排除集,「取消本分类」精确收敛
番号刮削判据全面收紧
ingestByNumber不再退回movies[0]:模糊搜索会把别人的片写成这个番号的侧车与 nfo- 区分「上游确实没有」(
not_found)与「这一趟没打通」,代理故障不再显示成「N 部上游没有」 - theporndb 的
site参数对未知 short_name 静默失效 → 自己再核一遍站点字段 siteClientKey补上 theporndb key 与 FlareSolverr 地址,改了设置现在真的生效
镜像
docker pull desstg/mypan:v2.9.2
docker pull desstg/mypan:latest
架构:linux/amd64(ARM 需在 Actions 里手动触发)
v2.9.1
v2.9.1
海报墙刮削的一轮梳理。
「开始刮削」现在一次就抓全
以前主刮削只向 TMDB 要一份简版资料(片名 / 年份 / 评分 / 封面),演员表、剧照、背景图、时长、风格标签得再点一次「补齐剧照与演员」。刚挂上来的库要刮两遍。
现在主刮削认到片名、年份、TMDB 编号之后,会顺手把完整的那份资料一次要回来 —— 实测一个片名干干净净、没带任何 TMDB 编号的目录,第一次「开始刮削」就跑出了 20 位演员、8 张剧照、背景图、时长和完整简介。剧集的分集信息与演员在同一份响应里回来,不会再出现「剧集刮完了但集数是空的」。
多花的时间只有每部一轮详情请求,换来整个库一遍刮完。
「补齐剧照与演员」仍然保留:它给老库用 —— 已经带着 nfo 和封面的作品,主刮削会认为「这部已经刮好了」直接跳过,想让它们补上演员和剧照还得从这颗按钮走。
可以勾几部只刮这几部
页头新增「批量选择」,位于「补齐剧照与演员」左边。开着它,点卡片即勾选:接着点「开始刮削」只刮勾中的那几部,点「补齐剧照与演员」只补这几部。一部没勾时两颗按钮置灰(不会再出现「点了半天其实一部都没选中」)。关掉就回到整根目录扫。
剧集勾中就是整部(全季全集),不会只刮点中的那一集。
AI 识别刮削并进「开始刮削」,开关挪进设置
原来本地目录页头那颗「AI 识别刮削」与「开始刮削」只差请求里一个字段,现已合并成一颗。开关挪到「海报墙 → 设置 → 刮削策略 → AI 补认识别」,默认开 —— 调 AI 要花钱,得自己勾;合并后页头也没有第二个地方能表达「这次别用 AI」了。
行为没变:只补规则认不出的那几部;STRM 任务永远不走 AI,那套的速度和结果与以前完全一致;AI 没配好时这一项等于不存在,刮削照常跑,不弹错、不刷日志。
修复:本地目录里外站直链的 .strm 打不开播放
挂上来的本地目录常是别的工具产出的库,.strm 正文写的是第三方网盘直链(OpenList 那种 /d/<id>?/名),不是本应用生成的格式。应用原来拿自己的格式去校验,对不上就判「这文件坏了」丢掉 —— 整柜作品在详情里都没有播放键,明明文件是好的、链也是通的。
现在本地目录这一类原样收下,能不能播交给播放器答。STRM 任务那一档照旧严格校验,番号那一档也没变。
安装
docker pull desstg/mypan:v2.9.1镜像标签:latest 或 v2.9.1(默认只构建 linux/amd64)。
v2.9.0
v2.9.0
海报墙的本地目录补完了:挂一个「TMDB 影片 / 剧集」类型的本地目录,现在能列出来、能刮削,认不出片名的还能交给 AI 补一下再刮。顺带修了「挂上空目录列表整片报错」,另外番号墙的在线刮削支持点名只刮勾中的那几部。
海报墙:本地目录可以选「TMDB 影片 / 剧集」了
海报墙的数据源有两种:自己建的 STRM 任务,和直接挂上来的本地目录(别的工具产出的库)。本地目录这条路当初只做了番号那一档 —— 挂上来的时候选了「TMDB 影片 / 剧集」,能扫描、能取图,但列表是空的,海报墙上根本列不出来。这一版补上了。
现在挂一个 TMDB 类型的本地目录,它就会出现在数据源下拉里,选它就能看到里面所有作品:没刮过的目录,首屏会自动扫一遍盘、把作品建进索引再列出来,不用先手动点一次刮削。
卡片上的一串操作(重匹配、重刮、标记为正常、删除)以及点开详情抽屉,本地目录这一档全都跟着通了。
顺带一提:挂上来的目录如果一个作品都没有,以前列表会整片报「服务内部错误」。现在正常显示空列表。
AI 识别刮削:认不出的片子先问 AI 再搜
本地 TMDB 目录的页头多了一颗「AI 识别刮削」。规则那套照样先跑 —— 从文件名解析出片名、年份,去 TMDB 搜,能搜到的立刻照常刮;只有「解析不出片名」或者「搜不到」的那几部,才攒成一批一起问 AI,AI 给出片名和年份之后再回头搜 TMDB,搜到就写 nfo 和海报。
所以它不会让本来就正常的片子变慢:能规则搞定的一个请求都不发。任务源(自己建的 STRM 任务)这一档完全不经过 AI,行为与以前逐字一致。
这颗按钮的开关就是你「系统设置 → AI 整理」里那一套(服务地址、密钥、模型)。没配的话点了也不出错:按钮照点、刮削照跑,认不出的那几部按原来的方式记一次失败,日志不刷屏、界面不弹错、也不会凭空写出半份资料。
AI 那边连不上、或者一口气全失败的时候也一样:整轮刮削不会中断,那几部照原样计入失败,等 AI 好了再点一次就能补上。
番号海报墙:在线刮削可以点名了
番号墙的页头多了一颗「批量选择」。开着它,点卡片就是勾选,再点「在线刮削」只刮你勾中的那几部 —— 想补哪几部就补哪几部,不用整根目录跑一遍。
不勾就不刮(按钮会置灰),不会再出现「点了半天以为在刮、其实一部都没选中」这种情况。关掉「批量选择」就回到老样子:扫整根目录。
修复:没有封面图的影片被灰色骨架永久盖住
海报墙对「图还没轮到」的卡片会盖一层骨架,等图到手再换成图片。判断要不要盖骨架原来只看一件事:这张卡当前拿到的图片地址是不是空的。
问题在于「这一部根本没有图」和「这一部还没轮到」拿到的都是空地址。前一种常见于刚从网盘拷进来、还没有刮削过的作品,于是骨架永远盖在「暂无封面」上面,看上去就是一直加载不出来。
现在两种状态分开判断:确实没有图的直接显示「暂无封面」;只是还没轮到取图的,照旧先盖骨架。
修复:切换分类后海报墙全是空骨架,滚一下才出来
番号墙切换分类(或者换数据源)之后,有时候整面墙都是灰块,要滚一下才把海报刷出来。
原因是「该给这一屏取哪几张图」是在列表变化时算的,而分类切换走的是另一条路,没触发这次重算。现在两条路都会重算,而且只是重新切一次取图窗口,不会把已经拿到的图再请求一遍。
关于镜像
desstg/mypan:v2.9.0— 固定版本(digestsha256:1cf0a4dea82124e56f5e6d260afe40cd2804f03f477fb3b927e9c10398d2af6d)desstg/mypan:latest— 跟随最新
v2.8.9
v2.8.9
修一个看起来像「一直加载不出来」的显示问题:番号海报墙上,磁盘里还没有图的影片被一层永久骨架盖住了。
修复:没有侧车图的影片显示成永久灰色骨架
海报墙对「暂时还没轮到取图」的卡片会盖一层骨架,等图到手再换成图片。判断「要不要盖骨架」原来只看一件事:这张卡当前拿到的图片地址是不是空的。
问题在于「这一部根本没有图」和「这一部还没轮到」拿到的都是空地址。前一种常见于刚从网盘拷进来、还没有刮削过的作品,于是骨架永远盖在「暂无封面」上面,看上去就是一直加载不出来 —— 实际上它只是缺图,点一下「在线刮削」补上就会正常显示。
现在两种状态分开判断:确实没有图的,直接显示「暂无封面」;只是还没轮到取图的,照旧先盖骨架。
关于镜像
desstg/mypan:v2.8.9— 固定版本(digestsha256:8b594550a02a47da573bde80fd2c6450046d0eec453ab5aadc54d28fd94e2bc7)desstg/mypan:latest— 跟随最新
v2.8.8
v2.8.8
修一个小的但很显眼的毛病:番号海报墙切换分类之后整面墙没有图,得随便往下滚一下才全部出来。
修复:切换分类后不滚动就不显示海报
海报墙只给「看得见的那些」发图片请求,取图范围按滚动位置算。切分类时会先把这份范围清空,等新的一批回来再重新算。
问题在于「重新算」这一步只挂在一个条件上:列表条数变了。而本地目录那种大库,每个一级目录都是一整页,切换分类时两边的条数一模一样(比如都是 200 条),这个条件就永远不成立 —— 范围一直是空的,于是整面墙清一色骨架。
至于为什么「滚一下就出来了」:滚动那一路里有重算,随便滚一下就把范围补上了。这也正是它看起来像缓存问题的原因。
现在列表换完之后直接重算,不再依赖条数有没有变;「刷新元数据」那条路也一起补上了。
关于镜像
desstg/mypan:v2.8.8— 固定版本desstg/mypan:latest— 跟随最新
v2.8.7
v2.8.7
一个小的修补版:番号海报墙的「在线刮削」按钮不再丢失进度。
修复:在线刮削关掉窗口 / 切换页面后,按钮变回「在线刮削」
在线刮削是服务端的后台任务 —— 关掉窗口它照样在跑。但「正在刮削」这个状态原来只记在页面的本地变量里,页面一销毁就没了:任务明明还在跑,按钮却回到初始态,看上去像是没开始。
现在每次页面重新「活过来」都会去问一次服务端:
- 还在跑 → 接着显示「刮削中… (n/m)」并继续跟进度,跑完正常收尾、把这一轮刮出来的东西刷上墙;
- 没在跑 → 什么都不做,不会把上一轮的结果弹成一次提示。
覆盖的时机:
- 重新打开页面(
onMounted) - 在后台各页面之间切换(
onActivated,KeepAlive 缓存下的切回) - 切换数据源(换源时先丢掉旧源那条进度再接新源)
- 从别的标签页 / 别的 app 切回来(
visibilitychange)
关于镜像
desstg/mypan:v2.8.7— 固定版本desstg/mypan:latest— 跟随最新