mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-07-08 18:43:03 +08:00
migrate dingtalk relevant to Plugin; when today chat chance used out, a message will send to dingtalk.
This commit is contained in:
27
plugin/DingtalkPlugin/dingtalk.mjs
Normal file
27
plugin/DingtalkPlugin/dingtalk.mjs
Normal 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
|
||||
}
|
||||
)
|
||||
}
|
||||
20
plugin/DingtalkPlugin/index.mjs
Normal file
20
plugin/DingtalkPlugin/index.mjs
Normal 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)
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user