koishi-plugin-jrys-prpr
Version:
[<ruby>**jrys-prpr**<rp>(</rp><rt>点我查看预览图</rt><rp>)</rp></ruby>](https://i0.hdslb.com/bfs/article/ae33f1b2e9dbc3fe89363a40fbf040703493298333289018.png)😽QQ官方json按钮支持,20个群即可发按钮!支持 monetary!很好看的字体! 支持自动清理记录内容。
32 lines (30 loc) • 1.16 kB
text/typescript
import type { Context } from 'koishi'
/**
* 将图片 URL 转换为 Base64 格式
*/
export async function convertToBase64image(ctx: Context, url: string, logInfo: (...args: any[]) => void): Promise<string> {
logInfo("转换base64:", url)
try {
const fileresponse = await ctx.http.file(url)
const imageBuffer = Buffer.from(fileresponse.data)
const base64Image = imageBuffer.toString('base64')
const mimeType = fileresponse.type || fileresponse.mime
return `data:${mimeType};base64,${base64Image}`
} catch (error) {
throw new Error(`转换本地图片为 Base64 失败: ${url}, 错误: ${error.message}`)
}
}
/**
* 对时间戳进行编码,用于生成唯一标识符
*/
export function encodeTimestamp(timestamp: string): string {
// 将日期和时间部分分开
let [date, time] = timestamp.split('T')
// 替换一些字符
date = date.replace(/-/g, '')
time = time.replace(/:/g, '').replace(/\..*/, '') // 去掉毫秒部分
// 加入随机数
const randomNum = Math.floor(Math.random() * 10000) // 生成一个0到9999的随机数
// 重排字符顺序
return `${time}${date}${randomNum}`
}