[Feature Request]: 音乐重命名哪里增加过滤器regex_search, 或者设置存储,音乐的自动分类的位置,希望可以设置,目前会自动增加一层目录ablium
当前程序版本
V3.0.0
运行环境
Docker
功能改进类型
主程序
功能改进
音乐重命名哪里增加jinja2过滤器regex_search, 或者设置存储,音乐的自动分类的位置,希望可以设置,目前会自动增加一层目录ablium
站点适配采集文件
不适用
参考资料
可以读取歌手字段 album_artist / artist,但是有一个关键点: 能拿到歌手的文本字符串,但是 MP 的 Jinja 模板没有内置汉字判断 / 正则过滤器。 能读到 “阿桑” 这两个汉字,但是模板语法里没有工具去判断这串文字里面有没有中文。 文档说的 “读取音频标签”,是把标签内容读出来给模板变量(album_artist变量拿到 "阿桑"),不等于给模板增加字符串分析能力。 现状拆解 ✅可以拿到歌手名字字符串:{{album_artist or artist}} → 值为阿桑 ❌但是模板没有:判断这个字符串是否包含汉字的函数 / 过滤器 regex_search:V3 音乐 jinja 环境没有注册这个过滤器,写上去直接报解析错误; 也没有contains_cn这类现成函数; Jinja 原生语法本身没有内置汉字检测,必须靠扩展过滤器。 变量值是拿到了,但是缺少工具去分析这个变量里面的字符。 那现在有哪些可行方案 方案 1:固定名单(硬编码中文歌手),模板可以实现(无报错) 把中文歌手写进模板判断,示例: jinja2 {% set cn_singers = ["阿桑","周杰伦","林俊杰"] %}{% if (album_artist or artist) in cn_singers %}中文音乐{% else %}外语音乐{% endif %}/{{album_artist or artist or 'Unknown Artist'}}/{{album or 'Unknown Album'}}{% if year %} ({{year}}){% endif %}{% if total_discs and total_discs > 1 %}/Disc {{disc_number or 1}}{% endif %}/{% if track %}{{track}} - {% endif %}{{title}}{{fileExt}} 缺点:每新增中文歌手,你就要手动加到列表里,不能自动识别未知中文歌手。适合歌手比较固定的收藏。 方案 2:回到 comment 标签方案(最稳定,官方设计思路) MP 音乐 V3 流程:读取音频标签,comment就是音频 ID3 标签其中一个字段。 你在外部工具 (Mp3tag) 把音频文件的 ID3 的 Comment 标签写入CN,MP 就能读到这个标签变量。 jinja2 {% if comment == 'CN' %}中文音乐{% else %}外语音乐{% endif %}/{{album_artist or artist or 'Unknown Artist'}}/{{album or 'Unknown Album'}}{% if year %} ({{year}}){% endif %}{% if total_discs and total_discs > 1 %}/Disc {{disc_number or 1}}{% endif %}/{% if track %}{{track}} - {% endif %}{{title}}{{fileExt}} 操作流程: 下载完成; Mp3tag 批量打开这批音频,批量写入 ID3 Comment 标签为CN; MP 重新整理,模板读取 comment 标签自动分到中文音乐。 文档写的 “读取音频标签用于识别和路径规划”,就是指读取 ID3 里的comment/artist/title这些已经写在文件内部的值;它不能在模板里面动态分析字符内容。
Source: jxxghp/MoviePilot