Commit 5f670ac9 authored by nanahira's avatar nanahira

fix onebot pic send problem

parent d03dc811
import { Adapter } from 'koishi'; import { Adapter, Bot } from 'koishi';
import _ from 'lodash'; import _ from 'lodash';
import { RegisterSchema, SchemaProperty } from 'schemastery-gen'; import { RegisterSchema, SchemaProperty } from 'schemastery-gen';
...@@ -44,23 +44,37 @@ export class SendTarget { ...@@ -44,23 +44,37 @@ export class SendTarget {
} }
} }
private isOneBotBot(bot?: Bot) {
return (
bot &&
(bot.platform === 'onebot' || bot['parentBot']?.platform === 'onebot')
);
}
async send(bots: Adapter.BotList, content: string) { async send(bots: Adapter.BotList, content: string) {
const bot = this.getBot(bots); const bot = this.getBot(bots);
if (!bot) { if (!bot) {
throw new Error(`bot ${this.bot} not found`); throw new Error(`bot ${this.bot} not found`);
} }
let privateContent = content;
let channelContent = content;
if (this.isOneBotBot(bot)) {
content = content.replace(/,url=base64/g, ',file=base64');
privateContent = content.replace(/,url=http/g, ',file=http'); // private should be file
channelContent = content.replace(/,file=http/g, ',url=http'); // channel should be url
}
return _.flatten( return _.flatten(
await Promise.all([ await Promise.all([
...this.users.map((userId) => ...this.users.map((userId) =>
bot.sendPrivateMessage bot.sendPrivateMessage
? bot.sendPrivateMessage(userId, content) ? bot.sendPrivateMessage(userId, privateContent)
: bot.sendMessage(`@${userId}`, content), : bot.sendMessage(`@${userId}`, privateContent),
), ),
...(this.channels?.length ...(this.channels?.length
? [ ? [
bot.broadcast( bot.broadcast(
this.channels.map((c) => c.toDesc()), this.channels.map((c) => c.toDesc()),
content, channelContent,
), ),
] ]
: []), : []),
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
"typescript": "^4.6.2" "typescript": "^4.6.2"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.7.1", "koishi": "^4.7.4",
"schemastery": "^3.4.3", "schemastery": "^3.4.3",
"schemastery-gen": "^3.1.6" "schemastery-gen": "^3.1.6"
} }
...@@ -1020,13 +1020,13 @@ ...@@ -1020,13 +1020,13 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.7.1", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.7.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.7.4.tgz",
"integrity": "sha512-vSd2BgyhDrTW/C7Ju1wDr5Z3vp7Qdyk7LgSpGI/b3QtDEfEkhdYKQ9J9LdHIVdUOFL0L0WeRgImW4ZMBtdVlfg==", "integrity": "sha512-S4pPaO05WC0htkQVcTMTluBZv4g8sEEBJ2ItHN2zJA8syet3iKJidT+s2gYt8d2rBo0Ndlvo1gBLGLNl/Zc9yg==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^5.4.5", "@koishijs/utils": "^5.4.5",
"cordis": "^1.1.1", "cordis": "^1.3.3",
"fastest-levenshtein": "^1.0.12", "fastest-levenshtein": "^1.0.12",
"minato": "^1.1.0" "minato": "^1.1.0"
}, },
...@@ -1034,24 +1034,6 @@ ...@@ -1034,24 +1034,6 @@
"node": ">=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/@koishijs/plugin-help": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-help/-/plugin-help-1.0.0.tgz",
"integrity": "sha512-SvOZiSmtysQxnhOUG0He+/Ftxr+IuIbTApsK6KypRpQ4a1q7OuJWmKb2e+f62zS3GhMYBJ8qT0wRMU+TFPP3AQ==",
"peer": true,
"peerDependencies": {
"koishi": "^4.7.1"
}
},
"node_modules/@koishijs/plugin-suggest": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-suggest/-/plugin-suggest-1.0.0.tgz",
"integrity": "sha512-6jmhymcygID59Z3UblAARGXflJoH0+Tj/qi20GNQO0bxrKkoW4qjxJhlmZe2uv+D1hvTO0q2Yv98iEMDhKyXxw==",
"peer": true,
"peerDependencies": {
"koishi": "^4.7.1"
}
},
"node_modules/@koishijs/segment": { "node_modules/@koishijs/segment": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/@koishijs/segment/-/segment-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/segment/-/segment-1.1.1.tgz",
...@@ -2265,9 +2247,9 @@ ...@@ -2265,9 +2247,9 @@
"peer": true "peer": true
}, },
"node_modules/cordis": { "node_modules/cordis": {
"version": "1.1.1", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-1.1.1.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-1.3.3.tgz",
"integrity": "sha512-l1tYxBqy+oEb3EKEvQAlH1g5BICDdnTdcIre1MuCY/qWO4bsrh97qd7jQe2Rq/+tg5HRqs7K6RgP5N/85c57xw==", "integrity": "sha512-mpyBWAEVYX8/YHoGWIqaOjrOk6DmtrOWZfsBSinNR+nDBlB39Ks6aC1B5oZ7AdnVoRE2ZYBCGecoHrlxcRxd6w==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.1.2" "cosmokit": "^1.1.2"
...@@ -4722,15 +4704,13 @@ ...@@ -4722,15 +4704,13 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.7.1", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.7.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.7.4.tgz",
"integrity": "sha512-WtY2ZujFMP4/ySKCc08oXLe2dYlZsdZP7f2eUck1w3cdvOh3eAgndckBP7xpkICAL0l6BYxrbzurIYh32Qck6g==", "integrity": "sha512-VVHf3TyFsTuKrB8IZffxwmwiGx+zyhDo+DNNEFQjvomgqFdGEceAnLxNIf10K48aB1CDmkmi37b6uaURi4Z1Hw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.7.1", "@koishijs/core": "^4.7.4",
"@koishijs/plugin-help": "^1.0.0",
"@koishijs/plugin-suggest": "^1.0.0",
"@koishijs/utils": "^5.4.5", "@koishijs/utils": "^5.4.5",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
...@@ -4741,7 +4721,7 @@ ...@@ -4741,7 +4721,7 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"ns-require": "^1.1.2", "ns-require": "^1.1.2",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.0", "path-to-regexp": "^6.2.1",
"portfinder": "^1.0.28", "portfinder": "^1.0.28",
"proxy-agent": "^5.0.0", "proxy-agent": "^5.0.0",
"ws": "^8.6.0" "ws": "^8.6.0"
...@@ -4960,9 +4940,9 @@ ...@@ -4960,9 +4940,9 @@
} }
}, },
"node_modules/minato": { "node_modules/minato": {
"version": "1.1.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/minato/-/minato-1.1.0.tgz", "resolved": "https://registry.npmjs.org/minato/-/minato-1.2.0.tgz",
"integrity": "sha512-by1KMWxWlzq0iDV7tMkqS3thDRzYNQoS2ECfX5HRpMGaPQJqSgm5aY9IAky7knwAMoW3cMxQ/IhpvEShQqyj6A==", "integrity": "sha512-L5Rb2L+qhmoW734fWFCeYaCwwY9/zPdt7VN3lXMDomsEXdmcdY4+X+w9q6J9P/Vj1v3RQf6fgc/oi25pWf+0og==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.1.2", "cosmokit": "^1.1.2",
...@@ -5062,9 +5042,9 @@ ...@@ -5062,9 +5042,9 @@
} }
}, },
"node_modules/ns-require": { "node_modules/ns-require": {
"version": "1.1.2", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/ns-require/-/ns-require-1.1.2.tgz", "resolved": "https://registry.npmjs.org/ns-require/-/ns-require-1.1.4.tgz",
"integrity": "sha512-GUF6I1hWDsGx1cA9FW27KIRAlkMel2UZagR39dVNPAPBgwWK1Ez0XB96WEz2OFcwHsCORI9h75dEZueHqZ/1pA==", "integrity": "sha512-Zk25pQj4u5i6DS0vaNO5aSSXewybVqqVVjz8AOxFy9DNPtmu3jlexMz6kUXLV2oB+X6iQeAnHXSzj5Qz/IeDaQ==",
"peer": true "peer": true
}, },
"node_modules/nwsapi": { "node_modules/nwsapi": {
...@@ -5290,9 +5270,9 @@ ...@@ -5290,9 +5270,9 @@
"dev": true "dev": true
}, },
"node_modules/path-to-regexp": { "node_modules/path-to-regexp": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
"integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
"peer": true "peer": true
}, },
"node_modules/path-type": { "node_modules/path-type": {
...@@ -7624,31 +7604,17 @@ ...@@ -7624,31 +7604,17 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.7.1", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.7.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.7.4.tgz",
"integrity": "sha512-vSd2BgyhDrTW/C7Ju1wDr5Z3vp7Qdyk7LgSpGI/b3QtDEfEkhdYKQ9J9LdHIVdUOFL0L0WeRgImW4ZMBtdVlfg==", "integrity": "sha512-S4pPaO05WC0htkQVcTMTluBZv4g8sEEBJ2ItHN2zJA8syet3iKJidT+s2gYt8d2rBo0Ndlvo1gBLGLNl/Zc9yg==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/utils": "^5.4.5", "@koishijs/utils": "^5.4.5",
"cordis": "^1.1.1", "cordis": "^1.3.3",
"fastest-levenshtein": "^1.0.12", "fastest-levenshtein": "^1.0.12",
"minato": "^1.1.0" "minato": "^1.1.0"
} }
}, },
"@koishijs/plugin-help": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-help/-/plugin-help-1.0.0.tgz",
"integrity": "sha512-SvOZiSmtysQxnhOUG0He+/Ftxr+IuIbTApsK6KypRpQ4a1q7OuJWmKb2e+f62zS3GhMYBJ8qT0wRMU+TFPP3AQ==",
"peer": true,
"requires": {}
},
"@koishijs/plugin-suggest": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-suggest/-/plugin-suggest-1.0.0.tgz",
"integrity": "sha512-6jmhymcygID59Z3UblAARGXflJoH0+Tj/qi20GNQO0bxrKkoW4qjxJhlmZe2uv+D1hvTO0q2Yv98iEMDhKyXxw==",
"peer": true,
"requires": {}
},
"@koishijs/segment": { "@koishijs/segment": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/@koishijs/segment/-/segment-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/segment/-/segment-1.1.1.tgz",
...@@ -8610,9 +8576,9 @@ ...@@ -8610,9 +8576,9 @@
"peer": true "peer": true
}, },
"cordis": { "cordis": {
"version": "1.1.1", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-1.1.1.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-1.3.3.tgz",
"integrity": "sha512-l1tYxBqy+oEb3EKEvQAlH1g5BICDdnTdcIre1MuCY/qWO4bsrh97qd7jQe2Rq/+tg5HRqs7K6RgP5N/85c57xw==", "integrity": "sha512-mpyBWAEVYX8/YHoGWIqaOjrOk6DmtrOWZfsBSinNR+nDBlB39Ks6aC1B5oZ7AdnVoRE2ZYBCGecoHrlxcRxd6w==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.1.2" "cosmokit": "^1.1.2"
...@@ -10466,15 +10432,13 @@ ...@@ -10466,15 +10432,13 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.7.1", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.7.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.7.4.tgz",
"integrity": "sha512-WtY2ZujFMP4/ySKCc08oXLe2dYlZsdZP7f2eUck1w3cdvOh3eAgndckBP7xpkICAL0l6BYxrbzurIYh32Qck6g==", "integrity": "sha512-VVHf3TyFsTuKrB8IZffxwmwiGx+zyhDo+DNNEFQjvomgqFdGEceAnLxNIf10K48aB1CDmkmi37b6uaURi4Z1Hw==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.7.1", "@koishijs/core": "^4.7.4",
"@koishijs/plugin-help": "^1.0.0",
"@koishijs/plugin-suggest": "^1.0.0",
"@koishijs/utils": "^5.4.5", "@koishijs/utils": "^5.4.5",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
...@@ -10485,7 +10449,7 @@ ...@@ -10485,7 +10449,7 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"ns-require": "^1.1.2", "ns-require": "^1.1.2",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.0", "path-to-regexp": "^6.2.1",
"portfinder": "^1.0.28", "portfinder": "^1.0.28",
"proxy-agent": "^5.0.0", "proxy-agent": "^5.0.0",
"ws": "^8.6.0" "ws": "^8.6.0"
...@@ -10649,9 +10613,9 @@ ...@@ -10649,9 +10613,9 @@
"dev": true "dev": true
}, },
"minato": { "minato": {
"version": "1.1.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/minato/-/minato-1.1.0.tgz", "resolved": "https://registry.npmjs.org/minato/-/minato-1.2.0.tgz",
"integrity": "sha512-by1KMWxWlzq0iDV7tMkqS3thDRzYNQoS2ECfX5HRpMGaPQJqSgm5aY9IAky7knwAMoW3cMxQ/IhpvEShQqyj6A==", "integrity": "sha512-L5Rb2L+qhmoW734fWFCeYaCwwY9/zPdt7VN3lXMDomsEXdmcdY4+X+w9q6J9P/Vj1v3RQf6fgc/oi25pWf+0og==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.1.2", "cosmokit": "^1.1.2",
...@@ -10733,9 +10697,9 @@ ...@@ -10733,9 +10697,9 @@
} }
}, },
"ns-require": { "ns-require": {
"version": "1.1.2", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/ns-require/-/ns-require-1.1.2.tgz", "resolved": "https://registry.npmjs.org/ns-require/-/ns-require-1.1.4.tgz",
"integrity": "sha512-GUF6I1hWDsGx1cA9FW27KIRAlkMel2UZagR39dVNPAPBgwWK1Ez0XB96WEz2OFcwHsCORI9h75dEZueHqZ/1pA==", "integrity": "sha512-Zk25pQj4u5i6DS0vaNO5aSSXewybVqqVVjz8AOxFy9DNPtmu3jlexMz6kUXLV2oB+X6iQeAnHXSzj5Qz/IeDaQ==",
"peer": true "peer": true
}, },
"nwsapi": { "nwsapi": {
...@@ -10907,9 +10871,9 @@ ...@@ -10907,9 +10871,9 @@
"dev": true "dev": true
}, },
"path-to-regexp": { "path-to-regexp": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
"integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
"peer": true "peer": true
}, },
"path-type": { "path-type": {
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
"typescript": "^4.6.2" "typescript": "^4.6.2"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.7.1", "koishi": "^4.7.4",
"schemastery": "^3.4.3", "schemastery": "^3.4.3",
"schemastery-gen": "^3.1.6" "schemastery-gen": "^3.1.6"
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment