Files
action-wechat-work/src/entrypoint.js

140 lines
3.8 KiB
JavaScript

const axios = require('axios');
const payload = {};
if (process.env.INPUT_MSGTYPE === 'text') {
payload.msgtype = process.env.INPUT_MSGTYPE;
if (!process.env.INPUT_CONTENT) {
console.log(`[action-wechat-work] INPUT_CONTENT is blank: ${process.env.INPUT_CONTENT}`);
}
payload.text = {
content: process.env.INPUT_CONTENT,
};
if (process.env.INPUT_MENTIONED_LIST) {
let mentioned_list;
try {
mentioned_list = JSON.parse(process.env.INPUT_MENTIONED_LIST);
} catch (error) {
mentioned_list = [];
console.log(`[action-wechat-work] INPUT_MENTIONED_LIST JSON.parse error: ${error}, JSON string: ${process.env.INPUT_MENTIONED_LIST}`);
}
payload.text.mentioned_list = mentioned_list;
}
if (process.env.INPUT_MENTIONED_MOBILE_LIST) {
let mentioned_mobile_list;
try {
mentioned_mobile_list = JSON.parse(process.env.INPUT_MENTIONED_MOBILE_LIST);
} catch (error) {
mentioned_mobile_list = [];
console.log(`[action-wechat-work] INPUT_MENTIONED_MOBILE_LIST JSON.parse error: ${error}, JSON string: ${process.env.INPUT_MENTIONED_MOBILE_LIST}`);
}
payload.text.mentioned_mobile_list = mentioned_mobile_list;
}
}
if (process.env.INPUT_MSGTYPE === 'markdown') {
payload.msgtype = process.env.INPUT_MSGTYPE;
if (!process.env.INPUT_CONTENT) {
console.log(`[action-wechat-work] INPUT_CONTENT is blank: ${process.env.INPUT_CONTENT}`);
}
payload.markdown = {
content: process.env.INPUT_CONTENT,
};
}
if (process.env.INPUT_MSGTYPE === 'image') {
payload.msgtype = process.env.INPUT_MSGTYPE;
if (!process.env.INPUT_BASE64) {
console.log(`[action-wechat-work] INPUT_BASE64 is blank: ${process.env.INPUT_BASE64}`);
}
if (!process.env.INPUT_MD5) {
console.log(`[action-wechat-work] INPUT_MD5 is blank: ${process.env.INPUT_MD5}`);
}
payload.image = {
base64: process.env.INPUT_BASE64,
md5: process.env.INPUT_MD5,
};
}
if (process.env.INPUT_MSGTYPE === 'news') {
payload.msgtype = process.env.INPUT_MSGTYPE;
let articles;
try {
articles = JSON.parse(process.env.INPUT_ARTICLES);
} catch (error) {
articles = [];
console.log(`[action-wechat-work] INPUT_ARTICLES JSON.parse error: ${error}, JSON string: ${process.env.INPUT_ARTICLES}`);
}
payload.news = {
articles,
};
}
if (process.env.INPUT_MSGTYPE === 'file') {
payload.msgtype = process.env.INPUT_MSGTYPE;
if (!process.env.INPUT_MEDIA_ID) {
console.log(`[action-wechat-work] INPUT_MEDIA_ID is blank: ${process.env.INPUT_MEDIA_ID}`);
}
payload.file = {
media_id: process.env.INPUT_MEDIA_ID,
};
}
if (process.env.INPUT_MSGTYPE === 'template_card') {
payload.msgtype = process.env.INPUT_MSGTYPE;
let template_card;
try {
template_card = JSON.parse(process.env.INPUT_TEMPLATE_CARD);
} catch (error) {
template_card = {};
console.log(`[action-wechat-work] INPUT_TEMPLATE_CARD JSON.parse error: ${error}, JSON string: ${process.env.INPUT_TEMPLATE_CARD}`);
}
payload.template_card = template_card;
}
console.log('[action-wechat-work] The message content in JSON format...', JSON.stringify(payload));
const url = process.env.WECHAT_WORK_BOT_WEBHOOK;
(async () => {
console.log('[action-wechat-work] Sending message ...');
await axios.post(url, JSON.stringify(payload), {
headers: {
'Content-Type': 'application/json'
},
});
console.log('[action-wechat-work] Message sent Success! Shutting down ...');
process.exit(0);
})()
.catch((err) => {
console.error('[action-wechat-work] Message sent error:');
err.message && console.error(`[action-wechat-work] err.message: ${err.message}`);
err.response && err.response.data && console.error(`[action-wechat-work] err.response.data: ${err.response.data}`);
process.exit(1);
});