Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否用自定义掩码,给特定(拥有该)标签的图片进行备注 #96

Closed
shitiamtired opened this issue Nov 15, 2021 · 2 comments

Comments

@shitiamtired
Copy link

1、希望知道怎么实现类似于教程的P5给动图加备注的功能(如果照搬视频里给动图加备注的话我当然是会的,但是如果是其他tag之类的该怎么添加?)。

2、下载过滤器如何设置两个条件,虽然有文本输出格式可以试,我完全不懂,所以……能列举一两个或者更多的例子吗?排除、指定多个标签还是挺有用的。

@Mapaler
Copy link
Owner

Mapaler commented Nov 15, 2021

tag 的话,在 illust.tags 里 ,参见 illust对象示例
如果你是需要把图片的所有 tag 添加到文件名,将这个数组内字符串提取出来,再合并到一个字符串即可,这里用到了JS 的编程语法。当然你还可以在这个基础上加入标签的排序或者筛选等。

illust.tags.map(o=>o.name).join('、')

图像 8

过滤器,组合多个条件,使用逻辑运算符,请见 逻辑或(||)逻辑与(&&)
先给你分步骤写

let tags = illust.tags.map(o=>o.name); //将 tag 字符串数组存入变量简化语句

tags.includes("博麗霊夢") && tags.includes("霧雨魔理沙") && tags.includes("東風谷早苗"); // tag 需要灵梦、魔理沙、早苗3个同时存在才返回 true
tags.includes("博麗霊夢") || tags.includes("霧雨魔理沙") || tags.includes("東風谷早苗"); // tag 灵梦、魔理沙、早苗中有任意一个就返回 true
(tags.includes("博麗霊夢") || tags.includes("霧雨魔理沙")) && tags.includes("東風谷早苗"); // tag 里有1个灵梦或者魔理沙,并同时有早苗,返回 true
!tags.includes("博麗霊夢") // !是取反,就是not的意思,这表示tag有灵梦时就返回 false

由于我默认设定的是排除过滤器,所以筛选应该是需要排除的图片;而只保留某种图片,则将这种图片的筛选条件取反就行了。
我现在要一定有灵梦和早苗的图,但是一定不要有魔理沙在上面。那么语句应该写为

!(tags.includes("博麗霊夢") && tags.includes("霧雨魔理沙")) || tags.includes("東風谷早苗")

上面的意思是,同时存在灵梦和魔理沙时,先得到 true ,然后取反变为 false ,所以其他只存在单个或者都不存在的情况都会返回 true ,就不会下载图片。另外存在早苗时也返回 true ,所以也不下载。
具体写到过滤器里时,又需要用一些语法进行包装(过滤器这里不要写掩码的括号)

(tags=> !(tags.includes("博麗霊夢") && tags.includes("霧雨魔理沙")) || tags.includes("東風谷早苗") )(illust.tags.map(o=>o.name))

图像 9
你也可以用在外面加上掩码的方式,在文本输出的地方查看逻辑输出结果

@shitiamtired
Copy link
Author

学到了,感谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants