mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
import { remark } from 'remark'
|
|
import stripMarkdown from 'strip-markdown'
|
|
export function markdownToText (markdown) {
|
|
return remark()
|
|
.use(stripMarkdown)
|
|
.processSync(markdown ?? '')
|
|
.toString()
|
|
}
|
|
|
|
export async function upsertMessage (message) {
|
|
await redis.set(`CHATGPT:MESSAGE:${message.id}`, JSON.stringify(message))
|
|
}
|
|
|
|
export async function getMessageById (id) {
|
|
let messageStr = await redis.get(`CHATGPT:MESSAGE:${id}`)
|
|
return JSON.parse(messageStr)
|
|
}
|
|
|
|
export async function tryTimes (promiseFn, maxTries = 10) {
|
|
try {
|
|
return await promiseFn()
|
|
} catch (e) {
|
|
if (maxTries > 0) {
|
|
logger.warn('Failed, retry ' + maxTries)
|
|
return tryTimes(promiseFn, maxTries - 1)
|
|
}
|
|
throw e
|
|
}
|
|
}
|
|
|
|
export async function makeForwardMsg (e, msg = [], dec = '') {
|
|
let nickname = Bot.nickname
|
|
if (e.isGroup) {
|
|
let info = await Bot.getGroupMemberInfo(e.group_id, Bot.uin)
|
|
nickname = info.card || info.nickname
|
|
}
|
|
let userInfo = {
|
|
user_id: Bot.uin,
|
|
nickname
|
|
}
|
|
|
|
let forwardMsg = []
|
|
msg.forEach(v => {
|
|
forwardMsg.push({
|
|
...userInfo,
|
|
message: v
|
|
})
|
|
})
|
|
|
|
/** 制作转发内容 */
|
|
if (e.isGroup) {
|
|
forwardMsg = await e.group.makeForwardMsg(forwardMsg)
|
|
} else if (e.friend) {
|
|
forwardMsg = await e.friend.makeForwardMsg(forwardMsg)
|
|
} else {
|
|
return false
|
|
}
|
|
|
|
if (dec) {
|
|
/** 处理描述 */
|
|
forwardMsg.data = forwardMsg.data
|
|
.replace(/\n/g, '')
|
|
.replace(/<title color="#777777" size="26">(.+?)<\/title>/g, '___')
|
|
.replace(/___+/, `<title color="#777777" size="26">${dec}</title>`)
|
|
}
|
|
|
|
return forwardMsg
|
|
}
|