From faccb290c06c176c99389294349536486d41b989 Mon Sep 17 00:00:00 2001 From: ningmengchongshui <916415899@qq.com> Date: Mon, 17 Jun 2024 09:56:05 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=BC=80=E5=8F=91=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E5=AF=B9=E8=B1=A1&=E5=A2=9E=E5=8A=A0=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=B1=BB&=E4=BF=AE=E6=94=B9=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=A3=B0=E6=98=8E&=E5=A2=9E=E5=8A=A0=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=8F=96=E6=B6=88=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/plugins.loader.ts | 71 ++++++++++++++--------- src/core/plugins/types.ts | 50 ++++++++++++++++ src/utils/index.ts | 1 + src/utils/module.ts | 22 +++++-- src/utils/picture.ts | 10 ++++ src/utils/puppeteer.ts | 11 ++-- src/yunzai-env.d.ts | 114 ------------------------------------- 7 files changed, 128 insertions(+), 151 deletions(-) create mode 100644 src/utils/picture.ts diff --git a/src/core/plugins.loader.ts b/src/core/plugins.loader.ts index aaa55ae..3c1723a 100644 --- a/src/core/plugins.loader.ts +++ b/src/core/plugins.loader.ts @@ -465,7 +465,7 @@ class PluginsLoader { * @param v * @returns */ - filtEvent(e, v) { + filtEvent(e: EventType, v) { if (!v.event) return false const event = v.event.split('.') const eventMap = this.eventMap[e.post_type] || [] @@ -483,7 +483,7 @@ class PluginsLoader { * @param v * @returns */ - filtPermission(e, v) { + filtPermission(e: EventType, v) { if (v.permission == 'all' || !v.permission) return true if (v.permission == 'master') { if (e.isMaster) { @@ -531,7 +531,7 @@ class PluginsLoader { * @param e.at 支持频道 tiny_id * @param e.atBot 支持频道 */ - dealMsg(e) { + dealMsg(e: EventType) { if (e.message) { for (let val of e.message) { switch (val.type) { @@ -582,68 +582,85 @@ class PluginsLoader { e.logText = '' /** - * + * 私聊 */ if (e.message_type === 'private' || e.notice_type === 'friend') { e.isPrivate = true + // 存在 if (e.sender) { + // nickname e.sender.card = e.sender.nickname } else { + // 不存在 e.sender = { + // nickname card: e.friend?.nickname, + // nickname nickname: e.friend?.nickname - } + } as any } - e.logText = `[私聊][${e.sender.nickname}(${e.user_id})]` } - if (e?.user_id) { - e.user_avatar = `https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}` - e.user_name = e.sender.nickname - } - if (e?.group_id) { - e.group_avatar = `https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/640/` - } - /** - * + * 群聊 */ if (e.message_type === 'group' || e.notice_type === 'group') { + // e.isGroup = true + + // 存在 if (e.sender) { - e.sender.card = e.sender.card || e.sender.nickname + // nickname + e.sender.card = e.sender.card ?? e.sender.nickname } else if (e.member) { e.sender = { - card: e.member.card || e.member.nickname - } + // nickname + card: e.member.card ?? e.member.nickname, + nickname: e.member.card ?? e.member.nickname + } as any } else if (e.nickname) { e.sender = { + // nickname card: e.nickname, + // nickname nickname: e.nickname - } + } as any } else { e.sender = { - card: '', - nickname: '' - } + card: e?.user_id ?? '', + nickname: e?.user_id ?? '' + } as any } if (!e.group_name) e.group_name = e.group?.name e.logText = `[${e.group_name}(${e.sender.card})]` + + // } else if (e.detail_type === 'guild') { + // e.isGuild = true } + if (!e.user_id) { + e.user_id = e.sender?.user_id + } + if (e?.user_id) { + e.user_avatar = `https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}` + } + if (e?.group_id) { + e.group_avatar = `https://p.qlogo.cn/gh/${e.group_id}/${e.group_id}/640/` + } + if (e.sender.nickname) { + e.user_name = e.sender.nickname + } + /** * */ - if ( - e.user_id && - cfg.masterQQ.includes(String(e.user_id) || String(e.user_id)) - ) { + if (e.user_id && cfg.masterQQ.includes(String(e.user_id))) { e.isMaster = true } @@ -651,7 +668,7 @@ class PluginsLoader { * 只关注主动at msg处理 */ if (e.msg && e.isGroup) { - const groupCfg = cfg.getGroup(e.group_id) + const groupCfg = cfg.getGroup(String(e.group_id)) let alias = groupCfg.botAlias if (!Array.isArray(alias)) { alias = [alias] diff --git a/src/core/plugins/types.ts b/src/core/plugins/types.ts index 8a0c5b1..c59d3b3 100644 --- a/src/core/plugins/types.ts +++ b/src/core/plugins/types.ts @@ -1,10 +1,25 @@ import { type GroupMessage } from 'icqq' import Runtime from './runtime' + +/** + * 消息体 + * 应该是根据 + * eleven 来进行赋值的 + * + * tudo + * 错误的设计导致其混乱 + */ + /** * 消息事件体 */ export interface EventType extends GroupMessage { + /** + * 'group' | 'private' + * @deprecated 已废弃 + */ + message_type: any, /** * 是否是机器人主人 */ @@ -45,6 +60,11 @@ export interface EventType extends GroupMessage { * 用户消息 */ msg: string + /** + * 图片 + * @deprecated 已废弃 + */ + img: string[] /** * 消息发送 * @param arg @@ -69,17 +89,47 @@ export interface EventType extends GroupMessage { */ runtime: typeof Runtime.prototype + /** + * @deprecated 已废弃 + */ + notice_type: any + /** * @deprecated 已废弃 */ group: { + /** + * @deprecated 已废弃 + */ is_owner: any; + /** + * @deprecated 已废弃 + */ recallMsg: (...arg: any[]) => any; + /** + * @deprecated 已废弃 + */ getMemberMap: any; + /** + * @deprecated 已废弃 + */ quit: any; + /** + * @deprecated 已废弃 + */ mute_left: any + /** + * @deprecated 已废弃 + */ pickMember: any + /** + * @deprecated 已废弃 + */ sendMsg: any + /** + * @deprecated 已废弃 + */ + name: any }; /** * @deprecated 已废弃 diff --git a/src/utils/index.ts b/src/utils/index.ts index 2e16a78..4e3dcfb 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -4,6 +4,7 @@ export * from './types.js' export * from './common.js' export * from './component.js' export * from './module.js' +export * from './picture.js' /** * 旧版本兼容性方法 */ diff --git a/src/utils/module.ts b/src/utils/module.ts index 1c58734..4bd2221 100644 --- a/src/utils/module.ts +++ b/src/utils/module.ts @@ -19,9 +19,16 @@ export function require(path: string) { } } -const now = () => `?update=${Date.now()}` +/** + * 获取时间请求 + * @returns + */ +const now = () => `?t=${Date.now()}` /** + * @param basePath import.meta.url + * @param T 默认开启动态,可自定设置系统量关闭 + * @returns * *********** * 创建动态模块 * *********** @@ -32,9 +39,14 @@ const now = () => `?update=${Date.now()}` * 请确保你的模块是可预测 * *********** * 请确保当前模块是可被执行的 - * @param basePath - * @returns */ -export const createDynamic = (basePath: string) => { - return (path: string) => import(new URL(`${path}${now()}`, basePath).href) +export const createDynamic = (basePath: string, T = true) => { + /** + * 与import作用相同 + * @param path 相对路径 + * @param TT 默认开启动态,可自定设置系统量关闭 + * @returns + */ + return (path: string, TT = true) => + import(new URL(`${path}${TT && T ? now() : ''}`, basePath).href) } diff --git a/src/utils/picture.ts b/src/utils/picture.ts new file mode 100644 index 0000000..858aa91 --- /dev/null +++ b/src/utils/picture.ts @@ -0,0 +1,10 @@ +import { Component } from './component' +import { Puppeteer } from './puppeteer' +export class Picture { + Pup: typeof Puppeteer.prototype = null + Com: typeof Component.prototype = null + constructor() { + this.Com = new Component() + this.Pup = new Puppeteer() + } +} diff --git a/src/utils/puppeteer.ts b/src/utils/puppeteer.ts index 766259c..aeb5ee5 100644 --- a/src/utils/puppeteer.ts +++ b/src/utils/puppeteer.ts @@ -32,13 +32,14 @@ export class Puppeteer { #pic = 0 // 重启次数控制 #restart = 200 - // 应用缓存 - #browser: Browser | null = null // 状态 #isBrowser = false // 配置 #launch: PuppeteerLaunchOptions = PuppeteerLunchConfig.all() + // 应用缓存 + browser: Browser | null = null + /** * 设置 * @param val @@ -62,7 +63,7 @@ export class Puppeteer { */ async start() { try { - this.#browser = await puppeteer.launch(this.#launch) + this.browser = await puppeteer.launch(this.#launch) this.#isBrowser = true console.info('[puppeteer] open success') return true @@ -97,7 +98,7 @@ export class Puppeteer { this.#pic = 0 console.info('[puppeteer] close') this.#isBrowser = false - this.#browser?.close().catch(err => { + this.browser?.close().catch(err => { console.error('[puppeteer] close', err) }) console.info('[puppeteer] reopen') @@ -119,7 +120,7 @@ export class Puppeteer { async render(htmlPath: string, Options?: ScreenshotFileOptions) { if (!(await this.isStart())) return false try { - const page = await this.#browser?.newPage().catch(err => { + const page = await this.browser?.newPage().catch(err => { console.error(err) }) if (!page) return false diff --git a/src/yunzai-env.d.ts b/src/yunzai-env.d.ts index f31d2ca..27f5b63 100644 --- a/src/yunzai-env.d.ts +++ b/src/yunzai-env.d.ts @@ -5,47 +5,9 @@ declare module '*.module.css' { const classes: CSSModuleClasses export default classes } -declare module '*.module.scss' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.sass' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.less' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.styl' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.stylus' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.pcss' { - const classes: CSSModuleClasses - export default classes -} -declare module '*.module.sss' { - const classes: CSSModuleClasses - export default classes -} // CSS declare module '*.css' {} -declare module '*.scss' {} -declare module '*.sass' {} -declare module '*.less' {} -declare module '*.styl' {} -declare module '*.stylus' {} -declare module '*.pcss' {} -declare module '*.sss' {} - -// Built-in asset types -// see `src/node/constants.ts` // images declare module '*.apng' { @@ -164,79 +126,3 @@ declare module '*.otf' { const src: string export default src } - -// other -declare module '*.webmanifest' { - const src: string - export default src -} -declare module '*.pdf' { - const src: string - export default src -} -declare module '*.txt' { - const src: string - export default src -} - -// wasm?init -declare module '*.wasm?init' { - const initWasm: ( - options?: WebAssembly.Imports - ) => Promise - export default initWasm -} - -// web worker -declare module '*?worker' { - const workerConstructor: { - new (options?: { name?: string }): Worker - } - export default workerConstructor -} - -declare module '*?worker&inline' { - const workerConstructor: { - new (options?: { name?: string }): Worker - } - export default workerConstructor -} - -declare module '*?worker&url' { - const src: string - export default src -} - -declare module '*?sharedworker' { - const sharedWorkerConstructor: { - new (options?: { name?: string }): SharedWorker - } - export default sharedWorkerConstructor -} - -declare module '*?sharedworker&inline' { - const sharedWorkerConstructor: { - new (options?: { name?: string }): SharedWorker - } - export default sharedWorkerConstructor -} - -declare module '*?sharedworker&url' { - const src: string - export default src -} - -declare module '*?raw' { - const src: string - export default src -} - -declare module '*?url' { - const src: string - export default src -} - -declare module '*?inline' { - const src: string - export default src -}