This repository has been archived by the owner on Dec 24, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
下载路径中的变量
Haryfw edited this page Jul 24, 2018
·
2 revisions
用 ${XXX}
的形式来使用某一个变量名(注意, 它们不是es6中的模板字符串, 只是长的一样)
比如 ${today}
被替换成 2018-01-01 ; ${host}
被替换成 example.com
变量名 | 说明 |
---|---|
year | 年份, 格式: YYYY |
month | 月份, 格式: MM |
date | 一个月中天数, 格式:DD |
today | 上面三个值的组合, 格式: YYYY-MM-DD |
host | 网站域名,如: example.com |
pagetitle | 网站标题 |
注意: 路径的末尾会自动追加文件名(filename)
例子:
输入 | 转换后 |
---|---|
${today} | 下载路径/2018-01-01/fillename |
picture/${host}/ | 下载路径/picture/example.com/filename |
data/${today}@ | 下载路径/data/2018-01-01@fillename |
自定义目录的最后一个输入项是用根据JS函数的返回值决定最终的下载路径
你只能在下载图片时使用这个特性
输入的内容应该是一段JS代码, 而且是一个普通匿名函数, 没有参数被传入
(这段代码会直接插入到页面中,所以你可以任意使用windows或location 这些全局变量)
function(){
return something;
}
除了上面提到的列表里的变量,你还可以使用下面额外补充的变量
变量名 | 说明 |
---|---|
index | 在当前页面的下载次数, 格式: DDDD. 刷新页面后被清零 |
url | 图像的链接地址 |
filename | 文件名 |
当这个函数返回的类型是 string
时,它的值就是 options.filename
的值。这意味着你需要手动地指定文件名,不过扩展会处理选项的其他参数
当返回的类型是 object
时,就会直接传给 browser.downloads.download()
作为参数进行调用。
你可以查阅这篇 MDN文档 中对 browser.downloads.download 参数的介绍
比如希望下载路径是 “域名/文件名” 那么代码可以写成这样(当然也可以用 es6 模板字符串语法)
function(){
return host + '/' + filename;
}
又或者根据网站把图片保存到不同的目录中
function(){
if(host=='i.imgur.com') return 'imgur' + '/' + filename;
if(host.endsWith('pixiv.net')) return 'acg' + '/' + filename;
return 'interesting'+ '/'+ filename;
}