From b23726f47cea1a5270775a2597e3a9c8091d9222 Mon Sep 17 00:00:00 2001 From: dragon-fish Date: Fri, 8 Mar 2024 21:49:44 +0800 Subject: [PATCH 1/2] feat: + plugin-novelai --- package.json | 1 + pnpm-lock.yaml | 43 ++++++++++++++++++++++++++++++++++++++ src/index.ts | 26 +++++++++++++++++++++++ src/plugins/debug/index.ts | 2 +- src/plugins/version.ts | 12 +++++------ 5 files changed, 76 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 625241b..a39ec54 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "koishi-plugin-github": "^5.5.1", "koishi-plugin-image-search": "^4.3.0", "koishi-plugin-mediawiki": "^2.1.0", + "koishi-plugin-novelai": "^1.21.1", "koishi-plugin-puppeteer": "^3.7.3", "koishi-plugin-rate-limit": "^2.0.1", "koishi-plugin-recall": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39927c7..feb83ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,6 +116,9 @@ dependencies: koishi-plugin-mediawiki: specifier: ^2.1.0 version: 2.1.0(koishi-plugin-puppeteer@3.7.3)(koishi@4.16.8) + koishi-plugin-novelai: + specifier: ^1.21.1 + version: 1.21.1(koishi@4.16.8) koishi-plugin-puppeteer: specifier: ^3.7.3 version: 3.7.3(koishi@4.16.8)(typescript@5.3.3) @@ -2581,6 +2584,11 @@ packages: hasBin: true dev: true + /adm-zip@0.5.10: + resolution: {integrity: sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==} + engines: {node: '>=6.0'} + dev: false + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3680,6 +3688,14 @@ packages: engines: {node: '>= 4'} dev: true + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + dependencies: + queue: 6.0.2 + dev: false + /inaba@1.1.1: resolution: {integrity: sha512-VYgrcz9EwjHELNU74R/p81U/G00u8KuFzao43pyNp7UZix+NY78eUzBy1Ks0tSgxgia+luJMvTD67vV02pk9yg==} dev: false @@ -4071,6 +4087,17 @@ packages: wiki-saikou: 3.3.1 dev: false + /koishi-plugin-novelai@1.21.1(koishi@4.16.8): + resolution: {integrity: sha512-GJIezyMYkZSXT5KluOj+lIqhS/WnJC3a11ZHg/Jdnj6AlrAuK5+PFqr0uHSa/nswa2HxIyGgOHJrfuqJTR+EDQ==} + peerDependencies: + koishi: ^4.16.8 + dependencies: + adm-zip: 0.5.10 + image-size: 1.1.1 + koishi: 4.16.8 + libsodium-wrappers-sumo: 0.7.13 + dev: false + /koishi-plugin-puppeteer@3.7.3(koishi@4.16.8)(typescript@5.3.3): resolution: {integrity: sha512-zcS1QKotfmLwGs0IhJ+7NfWx0m5HVzpIeBw4jsyd4IZM6+M4mcn/XRaiXdAHZAFQdfocyS5m1dxIbeoH2NVF0Q==} peerDependencies: @@ -4156,6 +4183,16 @@ packages: - utf-8-validate dev: false + /libsodium-sumo@0.7.13: + resolution: {integrity: sha512-zTGdLu4b9zSNLfovImpBCbdAA4xkpkZbMnSQjP8HShyOutnGjRHmSOKlsylh1okao6QhLiz7nG98EGn+04cZjQ==} + dev: false + + /libsodium-wrappers-sumo@0.7.13: + resolution: {integrity: sha512-lz4YdplzDRh6AhnLGF2Dj2IUj94xRN6Bh8T0HLNwzYGwPehQJX6c7iYVrFUPZ3QqxE0bqC+K0IIqqZJYWumwSQ==} + dependencies: + libsodium-sumo: 0.7.13 + dev: false + /lodash._reinterpolate@3.0.0: resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==} dev: true @@ -4607,6 +4644,12 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 + dev: false + /raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} diff --git a/src/index.ts b/src/index.ts index b8f6656..dcc9f19 100644 --- a/src/index.ts +++ b/src/index.ts @@ -78,6 +78,7 @@ import * as PluginDialogueFlow from 'koishi-plugin-dialogue-flow' import * as PluginDialogueRateLimit from 'koishi-plugin-dialogue-rate-limit' import PluginGithub from 'koishi-plugin-github' import * as PluginImageSearch from 'koishi-plugin-image-search' +import * as PluginNovelAi from 'koishi-plugin-novelai' import PluginPuppeteer from 'koishi-plugin-puppeteer' import * as PluginRateLimit from 'koishi-plugin-rate-limit' import * as PluginRecall from 'koishi-plugin-recall' @@ -330,6 +331,31 @@ app.plugin(function PluginCollectionSILICore(ctx) { ctx.plugin(PluginHljs) ctx.plugin(PluginMinecraft) ctx.plugin(PluginMute) + if (process.env.NOVELAI_USERNAME) { + // 部分开启 NovelAI 测试 + ctx + .channel( + process.env.CHANNEL_QQ_SANDBOX, + process.env.CHANNEL_QQ_NGNL_COMMON, + process.env.CHANNEL_QQ_IPE + ) + .plugin(PluginNovelAi, { + type: 'login', + email: process.env.NOVELAI_USERNAME, + password: process.env.NOVELAI_PASSWORD, + latinOnly: true, + }) + ctx.command('novelai', { + minInterval(session) { + if ((session.user as any)?.authority > 1) return 0 + return 60 * 1000 + }, + maxUsage(session) { + if ((session.user as any)?.authority > 1) return undefined + return 10 + }, + }) + } ctx.plugin(PluginOpenAi, { openaiOptions: { baseURL: env.OPENAI_BASE_RUL, diff --git a/src/plugins/debug/index.ts b/src/plugins/debug/index.ts index 2df90cd..55114f6 100644 --- a/src/plugins/debug/index.ts +++ b/src/plugins/debug/index.ts @@ -6,7 +6,7 @@ export class PluginDebug extends BasePlugin { constructor(ctx: Context) { super(ctx, {}, 'plugin-debug') - ctx.inject(['piggyback'], () => { + ctx.inject(['piggyback'], (ctx) => { ctx .command( 'debug.piggyback ', diff --git a/src/plugins/version.ts b/src/plugins/version.ts index 4c84d30..5e0bc3c 100644 --- a/src/plugins/version.ts +++ b/src/plugins/version.ts @@ -5,7 +5,7 @@ * @authority 1 */ -import { Context, version as KOISHI_VERSION } from 'koishi' +import { Context, version as KOISHI_VERSION, h } from 'koishi' import BasePlugin from '~/_boilerplate' export default class PluginVersion extends BasePlugin { @@ -24,15 +24,13 @@ export default class PluginVersion extends BasePlugin { const siliCoreInfo = ( await import('../../package.json', { assert: { type: 'json' } }) ).default - const onebotInfo = await ctx.bots - .find((i) => i.platform === 'onebot') - ?.internal.getVersionInfo() + const platforms = Array.from(new Set(ctx.root.bots.map((i) => i.platform))) const registeredPlugins = ctx.registry.entries() console.info(registeredPlugins) if (!options!.all) { return `[SILI Core] v${siliCoreInfo.version} (${gitHashInfo?.trim()}) -[Onebot] protocol ${onebotInfo?.protocol_version} / go-cqhttp ${onebotInfo?.version} +[Platforms] ${platforms} [Koishi.js] v${KOISHI_VERSION}` } @@ -52,13 +50,13 @@ export default class PluginVersion extends BasePlugin { const img = await ctx.html.hljs( [ `[SILI Core] v${siliCoreInfo.version} (${gitHashInfo})`, - `[Onebot] protocol ${onebotInfo?.protocol_version} / go-cqhttp ${onebotInfo?.version}`, + `[Platforms] ${platforms}`, `[Koishi.js] v${KOISHI_VERSION}`, ` - ${plugins.join('\n - ')}`, ].join('\n'), 'markdown' ) - return img || '检查版本时发生未知错误。' + return img ? h.image(img,'image/jpeg') : '检查版本时发生未知错误。' }) } } From 48ec5cf58407682348ca841fe64cd9215b0d7717 Mon Sep 17 00:00:00 2001 From: Dragon-Fish Date: Wed, 3 Apr 2024 21:30:39 +0800 Subject: [PATCH 2/2] fix: drop overlay --- src/plugins/mediawiki/infoboxDefinition.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/mediawiki/infoboxDefinition.ts b/src/plugins/mediawiki/infoboxDefinition.ts index cd0f80d..1ac2755 100644 --- a/src/plugins/mediawiki/infoboxDefinition.ts +++ b/src/plugins/mediawiki/infoboxDefinition.ts @@ -31,7 +31,9 @@ export const INFOBOX_DEFINITION: { /* 右下角悬浮的功能按钮 */ #bottomRightCorner, /* 全站公告弹窗 */ - body > .n-modal-container + body > .n-modal-container, + /* [[WAF]] */ + .mw-parser-output [data-id="lr-overlay"] { display: none !important; }