progressive-chatgpt-bot
Version:
A progressive ChatGPT feishu bot, made to assist my girlfriend's work.
118 lines • 2.55 kB
JavaScript
import * as lark from '@larksuiteoapi/node-sdk';
export { lark };
/**
* Get lark client
*
* @param setting
* @returns
*/
export function getLarkClient(setting) {
return new lark.Client({
appId: setting.feishuAppId,
appSecret: setting.feishuAppSecret,
disableTokenCache: false,
});
}
/**
* Reply message
*
* @param client
* @param messageId
* @param content
* @returns
*/
export async function reply(client, messageId, content) {
try {
return await client.im.message.reply({
path: {
message_id: messageId,
},
data: {
content: JSON.stringify({
text: content,
}),
msg_type: 'text',
},
});
}
catch (e) {
console.log('failed to reply message', e, messageId, content);
}
}
/**
* Build progressive message card
*
* @param content
* @returns
*/
export function buildProgressiveCard(content) {
return {
config: {
wide_screen_mode: true,
},
header: {
template: 'orange',
title: {
content: ' 📜 Please wait, I\'m typing ...',
tag: 'plain_text',
},
},
i18n_elements: {
zh_cn: [
{
tag: 'div',
text: {
content,
tag: 'lark_md',
},
},
],
},
};
}
/**
* Replay an interactive card
*
* @param messageId
* @param card
* @returns
*/
export async function replyCard(client, messageId, card) {
try {
return await client.im.message.reply({
data: {
content: JSON.stringify(card),
msg_type: 'interactive',
},
path: {
message_id: messageId,
},
});
}
catch (e) {
console.log('reply card error', e, messageId, card);
}
}
/**
* Replay an interactive card
*
* @param messageId
* @param card
* @returns
*/
export async function editCard(client, messageId, card) {
try {
return await client.im.message.patch({
path: {
message_id: messageId,
},
data: {
content: JSON.stringify(card),
},
});
}
catch (e) {
console.log('edit message error', e, messageId, card);
}
}
//# sourceMappingURL=lark.js.map