migrate dingtalk relevant to Plugin; when today chat chance used out, a message will send to dingtalk.

This commit is contained in:
bossgeekgo
2024-02-10 17:51:29 +08:00
parent b052dfedb1
commit 31aafa790a
5 changed files with 67 additions and 8 deletions

View File

@@ -0,0 +1,27 @@
export function createTextMessage (text) {
return JSON.stringify({
"msgtype": "text",
"text": {
"content": `${text}【geekgo】`
}
})
}
export async function requestDingTalkNotify (dingTalkAccessToken, body) {
const url = new URL(`https://oapi.dingtalk.com/robot/send`)
url.searchParams.append(
'access_token',
dingTalkAccessToken
)
return await fetch(
url,
{
method: 'post',
headers: {
'Content-Type': 'application/json'
},
body
}
)
}

View File

@@ -0,0 +1,20 @@
import { requestDingTalkNotify, createTextMessage } from './dingtalk.mjs'
export default class DingtalkPlugin {
constructor (dingtalkAccessToken) {
this.dingtalkAccessToken = dingtalkAccessToken
}
apply (hooks) {
if (!this.dingtalkAccessToken) {
console.log(`[DingtalkPlugin] AccessToken is empty, which makes the plugin won't do anything.`)
return
}
hooks.errorEncounter.tap(
'DingtalkPlugin',
(errorInfo) => {
requestDingTalkNotify(
this.dingtalkAccessToken, createTextMessage(errorInfo)
)
}
)
}
}