Skip to content

Releases: desstg/mypan

v2.9.6

Choose a tag to compare

@desstg desstg released this 23 Oct 10:46

番号海报墙 · 本地目录:三个修复

分类 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

Choose a tag to compare

@desstg desstg released this 23 Oct 06:20

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.5

Windows 版(免安装)

不想用 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

Choose a tag to compare

@desstg desstg released this 22 Oct 10:42

这一版

两件让人看着别扭的事:

  • 电视剧目录里同一集会堆好几份 .strm —— 现在一集只留一个。
  • 番号演员墙翻到底就只有 60 位 —— 现在能一直翻完。

同一集不再生成好几份 .strm

以前同一个目录里会出现好几个 .strm 指向同一集。这不是命名问题:网盘上真的每集存着好几份不同画质的文件(一份 1080p、一份 2160p…),而旧逻辑只合并「文件名完全相同、只有后缀不同」那种情况。

现在按「哪一季哪一集」收口,一集只留一个 .strm。挑哪一份:

  1. 先比分辨率(2160p 优先于 1080p)—— 不按体积单排,因为 1080p 高码率经常比 2160p 还大;
  2. 分辨率一样才按同名冲突策略(默认大文件优先);
  3. 最后按文件名兜底,保证每次扫描结果一致。

被合并掉的只是 .strm 这一个文本文件,网盘上的视频一个都不会动。

已经生成出来的重复不会自己消失 —— 要跑一次「更新」或「全量」扫描才会清掉(「补缺」模式只补不删)。

新增设置:同集洗版(默认关)

STRM 设置页多了一个「同集洗版」:

  • 关着(默认):本地已经有的那一集不动,只在第一次生成时挑最清楚的那份,这样 Emby 已经认下来的集不会因为重扫就换掉。
  • 打开:永远留最清楚的那份,更好的画质出现就替换旧的 .strm。

番号影片任务不走这套 —— 番号是一串片,不是一部剧的多集,合并会把不同番号并成一份。

演员墙:一直往下翻,不会再卡在 60 位

番号海报墙点开的演员页固定在第一页不动,看着像「只有 60 个演员」。实际是列表底部那个「滚到底继续加载」的观察器没挂上:观察它的时候列表还在「加载中」状态,那个位置根本不存在,于是静默失效,之后再也没补挂。

现在先让列表落定、再挂观察器;关掉演员页再打开也照常能翻(重开是新的页面,观察器会跟着重建)。底部那行字会告诉你还剩多少位,翻完显示「已全部加载」。

v2.9.3

Choose a tag to compare

@desstg desstg released this 22 Oct 03:59

番号演员墙

把所有番号墙(每个番号任务、每个挂上来的番号本地目录)上的演员聚成一页,卡片大小与番号海报墙一致。入口是番号海报墙页头那颗人像图标 —— 只在番号墙上出现,切到 TMDB 那几档墙时整颗不渲染。

列出来的每一位,都至少有一部片真的在墙上。数据全部来自那些影片自己的侧车 json 与 nfo,不是上游的演员库。

搜索与筛选

搜索框按名字过滤,主名用索引表里的中文统一名。默认隐藏男演员。

详情里的别名(日文原名、罗马音、旧艺名)点一下就拿去搜。以前点别名经常搜出空列表 —— 别名常来自上游,而墙上的搜索索引里没有那个写法。现在点别名等于点名找这一位,结果与搜主名完全一样。

资料档案

侧车与 nfo 只有名字、性别、头像,资料是另外查的:

  • avbase + JAVDB 拼出生年月、出身地、身高三围、罩杯、血型、爱好与别名;
  • 维基百科补一段介绍(导言),优先取中文条目,没有中文条目才用日文原文并标注「日文原文」;
  • 认人这一步是逐字核对条目标题、并且要求导言里确实提到是演员 —— 不会把同名历史人物的介绍贴到演员头上。

查到的结果缓存一天,第二次打开是秒开的。列表页只给索引表拼得出来的那批零网络头像,其余由前端进页面后并发 3 在后台补。

头像更清楚了

以前头像最大也就 300 像素(有的源只给 90 像素),放大看是糊的。现在详情抽屉优先用维基条目首图(960 宽),取不到再一路退回小图、TMDB、侧车那张。

海报墙上的卡片仍然用小图:一屏几十张,拉大图是白花流量,而那里只有一百多像素宽,看不出区别。

从影片详情点演员

在番号海报墙点开一部片,详情里的演员那一格现在是按钮,点一下进入这位演员的详情,关掉回到这部片。这一层压在影片详情之上,Esc 一层一层关。

其他

番号海报墙页头的「本地目录」入口从带文字的按钮改成图标按钮,与右侧那排图标同一套观感。

v2.9.2

Choose a tag to compare

@desstg desstg released this 19 Oct 10:29

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

Choose a tag to compare

@desstg desstg released this 18 Oct 13:13

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

Choose a tag to compare

@desstg desstg released this 18 Oct 02:51

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 — 固定版本(digest sha256:1cf0a4dea82124e56f5e6d260afe40cd2804f03f477fb3b927e9c10398d2af6d)
  • desstg/mypan:latest — 跟随最新

v2.8.9

Choose a tag to compare

@desstg desstg released this 17 Oct 12:33

v2.8.9

修一个看起来像「一直加载不出来」的显示问题:番号海报墙上,磁盘里还没有图的影片被一层永久骨架盖住了。

修复:没有侧车图的影片显示成永久灰色骨架

海报墙对「暂时还没轮到取图」的卡片会盖一层骨架,等图到手再换成图片。判断「要不要盖骨架」原来只看一件事:这张卡当前拿到的图片地址是不是空的。

问题在于「这一部根本没有图」和「这一部还没轮到」拿到的都是空地址。前一种常见于刚从网盘拷进来、还没有刮削过的作品,于是骨架永远盖在「暂无封面」上面,看上去就是一直加载不出来 —— 实际上它只是缺图,点一下「在线刮削」补上就会正常显示。

现在两种状态分开判断:确实没有图的,直接显示「暂无封面」;只是还没轮到取图的,照旧先盖骨架。

关于镜像

  • desstg/mypan:v2.8.9 — 固定版本(digest sha256:8b594550a02a47da573bde80fd2c6450046d0eec453ab5aadc54d28fd94e2bc7)
  • desstg/mypan:latest — 跟随最新

v2.8.8

Choose a tag to compare

@desstg desstg released this 17 Oct 07:30

v2.8.8

修一个小的但很显眼的毛病:番号海报墙切换分类之后整面墙没有图,得随便往下滚一下才全部出来。

修复:切换分类后不滚动就不显示海报

海报墙只给「看得见的那些」发图片请求,取图范围按滚动位置算。切分类时会先把这份范围清空,等新的一批回来再重新算。

问题在于「重新算」这一步只挂在一个条件上:列表条数变了。而本地目录那种大库,每个一级目录都是一整页,切换分类时两边的条数一模一样(比如都是 200 条),这个条件就永远不成立 —— 范围一直是空的,于是整面墙清一色骨架。

至于为什么「滚一下就出来了」:滚动那一路里有重算,随便滚一下就把范围补上了。这也正是它看起来像缓存问题的原因。

现在列表换完之后直接重算,不再依赖条数有没有变;「刷新元数据」那条路也一起补上了。

关于镜像

  • desstg/mypan:v2.8.8 — 固定版本
  • desstg/mypan:latest — 跟随最新

v2.8.7

Choose a tag to compare

@desstg desstg released this 17 Oct 06:52

v2.8.7

一个小的修补版:番号海报墙的「在线刮削」按钮不再丢失进度。

修复:在线刮削关掉窗口 / 切换页面后,按钮变回「在线刮削」

在线刮削是服务端的后台任务 —— 关掉窗口它照样在跑。但「正在刮削」这个状态原来只记在页面的本地变量里,页面一销毁就没了:任务明明还在跑,按钮却回到初始态,看上去像是没开始。

现在每次页面重新「活过来」都会去问一次服务端:

  • 还在跑 → 接着显示「刮削中… (n/m)」并继续跟进度,跑完正常收尾、把这一轮刮出来的东西刷上墙;
  • 没在跑 → 什么都不做,不会把上一轮的结果弹成一次提示。

覆盖的时机:

  • 重新打开页面(onMounted)
  • 在后台各页面之间切换(onActivated,KeepAlive 缓存下的切回)
  • 切换数据源(换源时先丢掉旧源那条进度再接新源)
  • 从别的标签页 / 别的 app 切回来(visibilitychange)

关于镜像

  • desstg/mypan:v2.8.7 — 固定版本
  • desstg/mypan:latest — 跟随最新