🆕 Add new send-dingtalk script and update metadata
This commit is contained in:
@@ -303,6 +303,15 @@
|
||||
"publish_time": 1758211365931,
|
||||
"update_time": 1758211655417
|
||||
},
|
||||
"send-dingtalk.ts": {
|
||||
"script_name": "send-dingtalk.ts",
|
||||
"script_length": 1989,
|
||||
"script_sha256": "3aaf65b397710241027fc2c01bd5e77da8f578b5818368561e1a2a68ec8223ea",
|
||||
"script_full_url": "https://git.hatter.ink/hatter/ts-scripts/raw/branch/main/single-scripts/send-dingtalk.ts",
|
||||
"single_script_file": true,
|
||||
"publish_time": 1777995479460,
|
||||
"update_time": 1777995479460
|
||||
},
|
||||
"server-control.ts": {
|
||||
"script_name": "server-control.ts",
|
||||
"script_length": 970,
|
||||
|
||||
69
single-scripts/send-dingtalk.ts
Normal file
69
single-scripts/send-dingtalk.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env runts -- --allow-all
|
||||
|
||||
import {parseArgs} from "jsr:@std/cli/parse-args";
|
||||
import {exit, log, readFileToString,} from "https://script.hatter.ink/@71/deno-commons-mod.ts";
|
||||
import {sendDingTalkTextMessage} from "https://script.hatter.ink/@1/deno-dingtalk-mod.ts";
|
||||
|
||||
function parseFlags(): any {
|
||||
const flags = parseArgs(Deno.args, {
|
||||
boolean: ["help"],
|
||||
string: ["access-token", "sec-token", "text-message"],
|
||||
alias: {
|
||||
h: "help",
|
||||
},
|
||||
});
|
||||
const helpMessage = `send-dingtalk.ts - DESCRIPTION
|
||||
|
||||
send-dingtalk.ts --access-token TOKEN --sec-token TOKEN --text-message MESSAGE
|
||||
`;
|
||||
if (flags.help) {
|
||||
console.log(helpMessage);
|
||||
exit(0);
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
|
||||
interface SendDingTalkConfig {
|
||||
accessToken: string;
|
||||
secToken?: string;
|
||||
}
|
||||
|
||||
async function loadConfig(args: any): Promise<SendDingTalkConfig | null> {
|
||||
if (args["access-token"]) {
|
||||
return {
|
||||
accessToken: args["access-token"],
|
||||
secToken: args["sec-token"],
|
||||
} as SendDingTalkConfig;
|
||||
}
|
||||
const sendDingtalkConfigContent = await readFileToString(
|
||||
"~/.config/send-dingtalk.json",
|
||||
);
|
||||
if (sendDingtalkConfigContent == null) {
|
||||
return null;
|
||||
}
|
||||
return JSON.parse(sendDingtalkConfigContent) as SendDingTalkConfig;
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const flags = parseFlags();
|
||||
|
||||
const config = await loadConfig(flags);
|
||||
if (config == null) {
|
||||
throw new Error("access-token (and/or sec-token) not found");
|
||||
}
|
||||
await sendDingTalkTextMessage({
|
||||
content: flags["text-message"] ?? "Empty Message!",
|
||||
}, {
|
||||
access_token: config.accessToken,
|
||||
sec_token: config.secToken,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
log.error(err);
|
||||
exit(1);
|
||||
}).then(() => exit(0));
|
||||
|
||||
// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20260505T233750+08:00.MEYCIQDQekiqXBMyq0MJhyOI
|
||||
// 2vG6HJKmijZ1dcLIc7/vxEn3ZgIhAPyF3twsS9la7HsTed6TxvVCQqeRQv71r6rnHo0W//QY
|
||||
Reference in New Issue
Block a user