青龙下的bark通知如果太长,会发生失败的情况。通过阅读源码可知,发送bark消息默认使用的是get请求,但是get请求可以携带的信息有长度限制,这时候就需要把请求方式修改为post。
修改sendNotify代码如下
function BarkNotify(text, desp, params = {}) {
return new Promise((resolve) => {
if (BARK_PUSH) {
const options = {
url: `${process.env.BARK_HOST}/push`,
json: {
title: text,
body: desp,
level: 'passive',
group: 'QingLong',
icon: `${BARK_ICON}`,
sound: `${BARK_SOUND}`,
device_key: `${process.env.BARK_TOKEN}`
},
headers: {
'Content-Type': 'application/json; charset=utf-8',
},
timeout,
};
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log('Bark APP发送通知调用API失败!!\n');
console.log(err);
} else {
data = JSON.parse(data);
if (data.code === 200) {
console.log('Bark APP发送通知消息成功🎉\n');
} else {
console.log(`${data.message}\n`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve();
}
});
} else {
resolve();
}
});
}
现在这样是可以发送长消息的。但是每次执行完ql repo之后,以上的修改又会被覆盖掉。经过在原作者GitHub库回答的issue得知,默认会拷贝青龙容器中 /ql/deps 到所有其他的repo中,这样问题就简单了,用以上方法,修改/ql/deps/sendNotify.js即可。
本文由 转啊转 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2019/08/23 10:16
按照你修改后还是不行,醉了,目前只有登陆能通知,,要它何用