Miao-Yunzai/src/core/common.ts

127 lines
2.4 KiB
TypeScript
Raw Normal View History

2024-06-09 20:02:18 +08:00
/**
* ************
* bot处理core
* ************
*/
/**
*
* @param userId qq号
* @param msg
* @param uin bot发送Bot
*/
export async function relpyPrivate(userId, msg, uin = Bot.uin) {
userId = Number(userId)
let friend = Bot.fl.get(userId)
if (friend) {
logger.mark(`发送好友消息[${friend.nickname}](${userId})`)
return await Bot[uin]
.pickUser(userId)
.sendMsg(msg)
.catch(err => {
logger.mark(err)
})
}
}
/**
*
* @param e
* @param msg
* @param dec
* @param msgsscr
*/
export async function makeForwardMsg(
e: any,
msg: any[] | string = [],
dec: string = '',
msgsscr = false
) {
// 不是数组
if (!Array.isArray(msg)) msg = [msg]
//
let name = msgsscr ? e.sender.card || e.user_id : Bot.nickname
//
const Id = msgsscr ? e.user_id : Bot.uin
// 是群聊
if (e.isGroup) {
try {
const Info = await e.bot.getGroupMemberInfo(e.group_id, Id)
name = Info.card || Info.nickname
} catch (err) {
console.error(err)
}
}
let forwardMsg:
| {
user_id: number
nickname: string
message: any
}[]
| {
data: any
} = []
/**
*
*/
for (const message of msg) {
if (!message) continue
forwardMsg.push({
user_id: Id,
nickname: name,
message: message
})
}
/**
*
*/
try {
/**
*
*/
if (e?.group?.makeForwardMsg) {
// ?
forwardMsg = await e.group.makeForwardMsg(forwardMsg)
} else if (e?.friend?.makeForwardMsg) {
// ?
forwardMsg = await e.friend.makeForwardMsg(forwardMsg)
} else {
//
return msg.join('\n')
}
/**
*
*/
if (dec) {
/**
*
*/
if (typeof forwardMsg.data === 'object') {
const Detail = forwardMsg.data?.meta?.detail
if (Detail) {
Detail.news = [{ text: dec }]
}
} else {
/**
*
*/
forwardMsg.data = forwardMsg.data
.replace(/\n/g, '')
.replace(/<title color="#777777" size="26">(.+?)<\/title>/g, '___')
.replace(/___+/, `<title color="#777777" size="26">${dec}</title>`)
}
}
} catch (err) {
console.error(err)
}
return forwardMsg
}