私有签到框架20221218

常用API

API 地址 参数 参数是否必须 说明 用例
时间戳 api://util/timestamp ts,form
默认返回当前时间戳和时间
如果参数带时间戳ts, 返回ts所对应时间;
如果参数带时间格式form,返回相应格式的本机和北京时间,默认"form=%Y-%m-%d %H:%M:%S"
Unicode转中文 api://util/unicode content content: 要转码的内容
Url转中文 api://util/urldecode content 要转码的内容
正则表达式 api://util/regex data,p data: 原始数据
p: 正则表达式
字符串替换 api://util/string/replace p,s,t p: 正则表达式
s: 要替换的字符串
t: 要替换的内容
延时 api://util/delay seconds seconds:延时指定时间
大于30s均视为延时30.0s
RSA加密/解密 api://util/rsa key,
data
f
key:RSA私钥,Get方式请删除换行符
data:要加密或解密的数据
f:encode为加密,decode为解密
HTTP/HTTPs
/Socks5代理
scheme://username:password@
hostname:port
scheme,
username,
password,
hostname,
port
是(username, password除外) scheme:协议头,可选输入http, https,socks5
username:代理账户名,如无账户验证请删除'username:password@'部分
password:代理账户密码
hostname:可选输入IPv4地址,IPv6地址,域名
port:端口号,如端口号为80或443可删除':port'部分
GB2312编码 api://util/gb2312 content content: 要转码的内容
OCR识别 api://util/dddd/ocr img或imgurl, old img: 要识别的Base64图片内容
imgurl: 要识别的web图片Url地址
old: 是否采用旧模型, 默认为False
extra_onnx_name: 自定义Onnx文件名, 默认为空
目标检测 api://util/dddd/det img或imgurl img: 要检测的Base64图片内容
imgurl: 要检测的web图片Url地址

常用参数及过滤器

参数/过滤器 说明 用例 参考值
{{unicode(a)}} 将 a 由 Unicode 转为中文(和上面 API 相同) {{unicode("\u4f60\u597d")}} 你好
{{quote_chinese(a)}} 将 a 中所有 ord() >=128 的用 urlencode 表示(注意和 urlencode 有区别) {{quote_chinese("123中文QAQ&/:")}} 123%E4%B8%AD%E6%96%87QAQ&/:
{{bool(a)}} 将 a 转为布尔值,
a为("yes", "on", "1", "true", 1)时为True, 不区分大小写
{{bool("Yes")}} True
{{random(min,max,unit)}} 随机生成从 min 到 max 的 unit 位小数 {{random(0,10,4)}} 0.8696
{{timestamp(type)}} 调用 time.time() 函数, 获取时间戳
type: 'int'表示输出整数, 'float'表示输出小数, 默认为'int'
{{timestamp('float')}} 1599990277.4615508
{{date_time(date,time,diff)}} date: 0/1表示是否显示日期, 默认为 1;
time: 0/1表示是否显示时分秒, 默认为 1;
diff: 时间差, 单位为h, 默认为 0
{{date_time(0,1,10)}}(在 18:06 测试) 04:06:21
{{is_num(s)}} 判断s是否为数字
不支持科学计数
{{is_num('0.5')}} True
{{add(*args)}} 对多个数据进行求和运算 {{add(3,2)}} 5.0
{{sub(*args)}} 对多个数据进行减法运算 {{sub(3,2)}} 1.0
{{multiply(*args)}} 对多个数据进行乘法运算 {{multiply(3,2)}} 6.0
{{divide(*args)}} 对多个数据进行除法运算 {{divide(3,2)}} 1.5
{{Faker(locale="zh_CN").function()}} 调用python包faker里的Faker类来创建伪数据,
locale为生成数据的文化选项,
需同时调用其提供的方法, 如name(),
Docs: https://faker.readthedocs.io/
{{Faker(locale='zh_CN').name()}} 苗桂芝
{{b64encode(a)}} 计算 a 的 base64 编码值 {{b64encode("hello")}} aGVsbG8=
{{b64decode(a)}} 计算 a 的 base64 解码值 {{b64decode("aGVsbG8=")}} hello
{{to_uuid(a, namespace)}} 计算 a 的 uuid5 生成值;
namespace: uuid所使用的命名空间,
默认为: 6ba7b811-9dad-11d1-80b4-00c04fd430c8
{{to_uuid("hello")}} 074171de-bc84-5ea4-b636-1135477620e1
{{md5(a)}} 计算 a 的 md5 值 {{md5("123")}} 202cb962ac59075b964b07152d234b70
{{sha1(a)}} 计算 a 的 sha1 值 {{sha1("123")}} 40bd001563085fc35165329ea1ff5c5ecbdbbeef
{{hash(a,hashtype)}} 计算 a 的 hash 值;
hashtype: Hash 类型, 默认为 sha1
{{hash("123","sha256")}} a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
{{aes_encrypt(word, key, mode, iv, output_format='base64', padding=True, padding_style='pkcs7')}} 计算 word 的 AES 加密值;
word: 待加密文本
key: 密钥, 长度应为16, 24或32
mode: 加密模式, ("ECB","CBC","CFB","OFB","CTR","GCM")
iv: 初始化向量, 长度为16
output_format: 输出格式, 默认为 base64
padding: 是否使用填充, 默认为 True
padding_style: 填充方式, 默认为 pkcs7
{{aes_encrypt("hello", "1234567890123456", "ECB", "1234567890123456", "hex")}} ebb7c703e675db3da397038b4c17823c
{{aes_decrypt(word, key, mode, iv, input_format='base64', padding=True, padding_style='pkcs7')}} 计算 word 的 AES 解密值;
word: 待解密文本
key: 密钥, 长度应为16, 24或32
mode: 加密模式, ("ECB","CBC","CFB","OFB","CTR","GCM")
iv: 初始化向量, 长度为16
input_format: 输入格式, 默认为 base64
padding: 是否使用填充, 默认为 True
padding_style: 填充方式, 默认为 pkcs7
{{aes_decrypt("ebb7c703e675db3da397038b4c17823c", "1234567890123456", "ECB", "1234567890123456", "hex")}} hello
{{password_hash(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds, ident=ident)}} 计算 password 的 加密hash 值;
hashtype: Hash 类型 ("md5", "sha256", "sha512", "blowfish"), 默认为 sha512
salt: password 盐值
salt_size: password 盐值尺寸
rounds: password hash迭代次数
ident: blowfish 算法版本, 默认为 2b
{{password_hash("hello")}} $6$rounds=656000$KSQu5IKoWLdHDYqJ$W.MQWC3LsuzRsQ35.07h48Mr3TMJ9Cjj0du.5mGEW2yOFkQlxi/ySwwG5Z4SKVewpWn8PFPZLUuTrAwcV0ke0.
{{regex_replace(value, pattern, replacement, count, ignorecase, multiline)}} 匹配替换为指定文本, re.sub 方法实现;
value: 要被查找替换的原始字符串,
pattern: 正则中的模式字符串
replacement: 匹配后替换字符串
count: 替换次数, 默认为 0 (全部替换)
ignorecase: 忽略大小写, 默认为 False
multiline: 多行匹配, 默认为 False
{{regex_replace("账号: 123456789A!", "[a-z|0-5]", "*", 0, True, False)}} 账号: *****6789*!
{{regex_findall(value, pattern, ignorecase, multiline)}} 匹配文本并返回列表形式的字符串, re.findall 方法实现;
value: 要被查找的原始字符串,
pattern: 正则中的模式字符串
ignorecase: 忽略大小写, 默认为 False
multiline: 多行匹配, 默认为 False
{{regex_findall("账号: 123456789A!", "[a-z|0-5]", True, False)}} ['1', '2', '3', '4', '5', 'A']
{{regex_search(value, pattern, *args, **kwargs)}} 匹配文本并返回列表形式的字符串, re.search 方法实现;
value: 要被查找的原始字符串,
pattern: 正则中的模式字符串
*args: 形如 "\\1", "\\g"
**kwargs: 形如 ignorecase=True, multiline=False
{{regex_search("账号: 123456789A!", "账号: ([0-5])([0-5]+).*([a-z]+)", "\\2", "\\3", ignorecase=True)}} ['2345', 'A']
{{regex_escape(value, re_type)}} 转义 value正则表达式 中的特殊字符, re.escape 方法实现;
value: 要被转义的原始正则表达式,
re_type: 转义类型("python", "posix_basic") 默认为 python
{{regex_escape("^f.*o(.*)$")}} \\^f\\.\\*o\\(\\.\\*\\)\\$
{{ternary(value, true_val, false_val, none_val)}} 为 True/False/None 定义不同的值;
value: 原始表达式/原始布尔值 或 原始变量,
true_val: 当 value为True 时返回该值
false_val: 当 value为False 时返回该值
none_val: 当 value为None或未定义 时返回该值, 默认为 None
{{ternary(variable == "needs_restart", "restart", "continue") }} continue
{% for variable in variables %} 开始一个 for 循环 \ \
{% endfor %} 结束一个 for 循环 \ \
{% if Conditional_Expression %} 开始一个 if 判断 \ \
{% else %} if 判断条件不成立 \ \
{% endif %} 结束一个 if 判断 \ \
safe 关闭 html 自动转义 {{ "<em>name</em>" | safe }} <em>name</em>
length 长度 {{ "abc" | length }} 3
wordcount 计算字符串中单词的个数 {{ "abc def" | wordcount }} 2
striptags 删除字符串中所有的html标签, 如果出现多个空格, 将替换成一个空格 {{ "<a>123</a> <p>456</p>" | striptags }} 123 456
replace(s,t) 将字符串中的 s 替换为 t {{ "123" | replace("1","a") }} a23
truncate(length=255, killwords=False, end='...') killwords=True 时在第 length 处截断,最后补上一个 end {{ "abcd" | truncate(2, True,'q') }} aq