搜索规则代码的常见问题与解答
本帖最后由 karevos 于 2011-2-15
08:57 编辑
下面这篇 QA 面向的读者应该是对 fb2k
的界面布局、标题格式化语句有初步了解的朋友们,这些内容适用于几乎所有具备搜索功能的封面显示组件,例如 WSH
Cover、ELPlaylist、Album Art Panel、CUI 的 Artwork View 等,掌握它将对你很有益处。
- 如果你看不懂我写的是什么,并且不希望接触代码,那么请忽略这篇 QA。
- 如果你有学习的意愿,希望了解标题格式化,请看这里。
- 如果你愿意更进全面的学习标题格式化,请看这里。
- 学习代码最好的方式就是不断练习实践,如果你想测试你的代码是否正确,CUI 全局变量可以帮助你。
- 如果你是初学者,想实践你的想法,我建议你从 foo_uie_albumart
开始,虽然这个插件有点老,但它有相对完整的 WIKI 和友善的操作界面,易于自学。
Q: 这是什么?
A: 呃……这是一个以标题格式化函数 $replace()
的使用为模板,关于专辑图片搜索代码规则的常见问题解答,面向新手。
Q: 我的专辑图片与歌曲在同一个文件夹下,名为front.jpg,该怎么写?
A: $replace(%path%,%filename_ext%,)front.jpg
Q: 那么front.png呢?
A: $replace(%path%,%filename_ext%,)front.png
Q: 如果我有很多专辑文件夹,有的文件夹下是front.png,而有的是front.jpg,怎么办?
A: $replace(%path%,%filename_ext%,)front.*p*g
Q: 如果有的文件夹内还有cover.jpg和folder.png,怎么办?
A: 好办,那就再加两行,按顺序搜索:
$replace(%path%,%filename_ext%,)front.*p*g
$replace(%path%,%filename_ext%,)cover.*p*g
$replace(%path%,%filename_ext%,)folder.*p*g
Q: 我重命名了图片名,与歌曲文件名一致,怎么写?
A: $replace(%path%,%filename_ext%,)%filename%.*p*g
Q: 与歌曲标签中的标题名称一致,怎么写?
A: $replace(%path%,%filename_ext%,)%title%.*p*g
Q: 要是与歌曲标签中的专辑名称一致呢?
A: $replace(%path%,%filename_ext%,)%album%.*p*g
Q: 如果有更多不同名字的图片,怎么办?
A: 代码不宜过多,为了提高搜索效率,改名吧!
Q:
对于歌曲文件所在文件夹的子文件夹内的图片,如何处理?例如“xxx\心跳\BK\front.jpg”
A: $replace(%path%,%filename_ext%,BK\)front.*p*g
Q:
我的歌曲位于“xxx\王力宏\心跳”这个文件夹下,但是图片位于“xxx\王力宏\BK”这个文件夹下,该怎么写?
A:
$replace(%path%,%directoryname%\%filename_ext%,BK\)front.*p*g
或者写成下面这样,结构更清晰(感谢版主 realhaiy 补充):
$replace($directory_path(%path%),%directoryname%,BK\)front.*p*g
Q: 有的子文件夹是BK,有的是booklet,还有的是jacket等等,怎么办?
A: 改名!
Q: 如果我所有不同歌曲的图片是集中在同一个文件夹中,该怎么办呢?
A: 不建议这样做,命名、搜索可能会遇到更多的问题。
Q: 可是我已经这样做了,并且,我的专辑图片集中存放在 M:\Music\Art
目录中,它们与各自对应的歌曲文件同名,我该如何书写搜索代码?
A: M:\Music\Art\%filename%.*p*g
Q: 我的专辑图片集中存放在 M:\Music\Art
目录中,它们与各自对应的歌曲文件所在的目录同名,我该如何书写搜索代码?
A: M:\Music\Art\%directoryname%
Q: 上面说了这么多,到底在哪里设置啊?
A: 如果你使用了 CUI 的 Artwork view,可以在
"Preferences-->Display-->Column UI-->Artwork" 设置,仅用于 CUI;如果是
WSH Cover,一般在右键属性里有设置的地方;如果是 Album Art Panel (foo_uie_albumart),请参考它的 WIKI;如果是
ELPlaylist……哦,我的天,怎么这么多如果,你需要查阅它们的手册,或者咨询界面配置的作者。
Q: 哪里能找到关于$replace语句更详细的资料呢?
A: 这里。
Q: 你用的$replace语句好麻烦啊,我有更简单的写法。
A: 那就烦请您不吝赐教,我来改进咯。
Q: jensen 版主提出用$directory_path(%path%)来替代$replace,看起来可以缩短代码长度,具体怎么操作呢?
A:
以“xxx\心跳\BK\front.jpg”为例,可以写成$directory_path(%path%)\BK\front.*p*g,其他情况下
的用法请以此类推。
Q:
我的歌曲标签不全,没有album字段,可以使用了$replace(%path%,%filename_ext%,)%album%.*p*g这样的句
式吗?
A: 不可以!这样会导致显示不正确的图片。
Q:
我的歌曲很多,并非所有歌曲都没有album字段,但我确实很喜欢用$replace(%path%,%filename_ext%,)
%album%.*p*g这个句式。
A: 用条件语句吧,对没有album字段的歌曲进行区别对待,可以写成类似下面这样:
$if(%album%,$replace(%path%,%filename_ext%,)%album%.*p*g,...)...
Q: 凡事总有例外,我们平时在听歌时会发现,有些 Artist
的名字中会含有非法字符,尤其是国外歌手,比如 AC/DC, *Nsync, Sixx:A.M.
(他们可能不懂计算机语言^-^,起这么怪的名字)。很显然,Windows 是不允许在文件名中出现 /, \, *, :, ? ,>,
<, |, " 这些非法字符的,所以我们不得不使用一些合法字符来替代它们,例如下划线 "_"。那么搜索代码该怎么写呢?
A: replace 是什么意思?不就是 “替代” 嘛!在搜索的时候我们可以这样写(感谢版友 嘉
荣 补充):
$replace(%artist%,'/','_','*','_','?','_','>','_','<','_'...,)...
|
|