Commit 4052affc authored by nanahira's avatar nanahira

support consumer message

parent 0e892e04
...@@ -101,4 +101,11 @@ app.command('survey', '卡片调查').action(async ({ session }) => { ...@@ -101,4 +101,11 @@ app.command('survey', '卡片调查').action(async ({ session }) => {
} }
}); });
app.command('link').action(() => '<a href="https://koishi.chat">Koishi</a>');
app.command('wait <time:posint>').action(async (argv, time) => {
await new Promise((resolve) => setTimeout(resolve, time * 1000));
return `等待了 ${time} 秒`;
});
app.start(); app.start();
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
"form-data": "^4.0.0", "form-data": "^4.0.0",
"koa-wechat-public": "^0.1.13", "koa-wechat-public": "^0.1.13",
"koa-xml-body": "^2.2.0", "koa-xml-body": "^2.2.0",
"koishi-thirdeye": "^11.1.21", "koishi-thirdeye": "^11.1.24",
"mime2ext": "^1.0.1" "mime2ext": "^1.0.1"
}, },
"devDependencies": { "devDependencies": {
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.11.1" "koishi": "^4.11.6"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
...@@ -1212,23 +1212,23 @@ ...@@ -1212,23 +1212,23 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.11.1", "version": "4.11.6",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.6.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==", "integrity": "sha512-7Ky1q+9wPSACk5T5Oi+UjWQIQfwgZao/QnHmZjK7NaW+17NSG6MBRvu9davcayMKrs9HVcnP0kaqvS2n9z7+bA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.1", "@minatojs/core": "^2.2.2",
"@satorijs/core": "^2.0.1", "@satorijs/core": "^2.1.2",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
"node_modules/@koishijs/loader": { "node_modules/@koishijs/loader": {
"version": "2.5.1", "version": "2.5.6",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.6.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==", "integrity": "sha512-2LswjTMsfqO0TCZpRs69ZbRI3RHh97/9KSitFFhplO++ZkKuqFHUwVnmFi7AbgtobybUZ+2llGtvO1cNZL13Kw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
...@@ -1236,7 +1236,7 @@ ...@@ -1236,7 +1236,7 @@
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
}, },
"peerDependencies": { "peerDependencies": {
"@koishijs/core": "^4.11.1" "@koishijs/core": "4.11.6"
} }
}, },
"node_modules/@koishijs/plugin-help": { "node_modules/@koishijs/plugin-help": {
...@@ -1249,21 +1249,19 @@ ...@@ -1249,21 +1249,19 @@
} }
}, },
"node_modules/@koishijs/utils": { "node_modules/@koishijs/utils": {
"version": "6.4.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==", "integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"inaba": "^1.1.1", "inaba": "^1.1.1"
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
} }
}, },
"node_modules/@minatojs/core": { "node_modules/@minatojs/core": {
"version": "2.1.1", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.2.2.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==", "integrity": "sha512-bZJ58RGtZ1LSw6zsAGoejvhAfgyhPhgrBmaNbTtAam3z+8XsJtR3dU4iWEa7cV6BcWfKTyTHNBAJM+9MvkZ4mg==",
"dependencies": { "dependencies": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
...@@ -1304,37 +1302,37 @@ ...@@ -1304,37 +1302,37 @@
} }
}, },
"node_modules/@satorijs/core": { "node_modules/@satorijs/core": {
"version": "2.0.1", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.3.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==", "integrity": "sha512-YTX4VohtHl8kHEZmQDWzxGTI0+m5fDPTu8czBeztlTQofqouW6tUtP5h1TRJC7JqvjN/+Du6o0ilyIgIcl0Snw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@satorijs/element": "^2.3.1", "@satorijs/element": "^2.3.2",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cordis-axios": "^2.2.1", "cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"reggol": "^1.3.4", "reggol": "^1.3.5",
"schemastery": "^3.6.1", "schemastery": "^3.7.0",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
"node_modules/@satorijs/element": { "node_modules/@satorijs/element": {
"version": "2.3.1", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.2.tgz",
"integrity": "sha512-p1hQVy56nfJ2dw1noEHkV7hKpC9yqe5u3Vla+CSPqXU12uB4zqv96rjT9n4WulNGl8XTzqWxp8q8KWqhSI8JFA==", "integrity": "sha512-XOA5/2NGFjlD7Vb/qqkesqFY3PdP7Xvbg72MspSodYbSQVJoPSPuQooa9EWB8GBkxGPDA1y8GRQoL0jlLqcm2w==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
}, },
"node_modules/@satorijs/satori": { "node_modules/@satorijs/satori": {
"version": "2.0.1", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.3.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==", "integrity": "sha512-7gd4q/ACRrBvCyTvODvxgf/iKxNpDg9BJy3PtbmB4dMDRixISUPmqOLVV1B1Q8XBVrtTWAuEivpOucgw7BZ8qQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1", "@satorijs/core": "2.1.3",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -1346,7 +1344,6 @@ ...@@ -1346,7 +1344,6 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
...@@ -2823,9 +2820,9 @@ ...@@ -2823,9 +2820,9 @@
} }
}, },
"node_modules/content-type": { "node_modules/content-type": {
"version": "1.0.4", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"peer": true, "peer": true,
"engines": { "engines": {
"node": ">= 0.6" "node": ">= 0.6"
...@@ -2866,36 +2863,35 @@ ...@@ -2866,36 +2863,35 @@
"peer": true "peer": true
}, },
"node_modules/cordis": { "node_modules/cordis": {
"version": "2.6.0", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==", "integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.3" "cosmokit": "^1.4.0"
} }
}, },
"node_modules/cordis-axios": { "node_modules/cordis-axios": {
"version": "2.2.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==", "integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"mime-db": "^1.52.0", "mime-db": "^1.52.0"
"schemastery": "^3.6.1"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"cordis": "^2.6.0" "cordis": "^2.7.2"
} }
}, },
"node_modules/cordis-decorators": { "node_modules/cordis-decorators": {
"version": "1.0.24", "version": "1.0.26",
"resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.24.tgz", "resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.26.tgz",
"integrity": "sha512-yXD2Z0cRYTHQBh788mIADbhA7X2dV/WQfiC/4xcTrsF4R4A0ZoCQlt1AULKaGBAwD80VgNrc14Ok3SmKSRJmcQ==", "integrity": "sha512-f57gwXkTgduBXL6uwEzT1kkSQLP5eNZleQrK0hGJ+9TwwF3sbh8WQUI0NDgQcTXblV5/aCvGvHCovALKc7i2KA==",
"dependencies": { "dependencies": {
"mustache": "^4.2.0", "mustache": "^4.2.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
...@@ -2904,7 +2900,7 @@ ...@@ -2904,7 +2900,7 @@
"typed-reflector": "^1.0.11" "typed-reflector": "^1.0.11"
}, },
"peerDependencies": { "peerDependencies": {
"cordis": "^2.6.0", "cordis": "^2.7.2",
"schemastery": "^3.5.1" "schemastery": "^3.5.1"
} }
}, },
...@@ -3704,9 +3700,9 @@ ...@@ -3704,9 +3700,9 @@
} }
}, },
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.1.3", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
...@@ -5021,15 +5017,15 @@ ...@@ -5021,15 +5017,15 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.11.1", "version": "4.11.6",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.6.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==", "integrity": "sha512-XvsBmdVXHIzgU2v3IFe4wJakzqpKBH/dZtYCScDkq13zn/pLamI88rMxs7BYUd131lyJndzxa6jMwFVMvtYyUA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/core": "4.11.1", "@koishijs/core": "4.11.6",
"@koishijs/loader": "^2.5.1", "@koishijs/loader": "2.5.6",
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.0.1", "@satorijs/satori": "^2.1.2",
"cac": "^6.7.14", "cac": "^6.7.14",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"kleur": "^4.1.5", "kleur": "^4.1.5",
...@@ -5044,18 +5040,18 @@ ...@@ -5044,18 +5040,18 @@
} }
}, },
"node_modules/koishi-thirdeye": { "node_modules/koishi-thirdeye": {
"version": "11.1.21", "version": "11.1.24",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.21.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.24.tgz",
"integrity": "sha512-7IiKSCcqPsxSaoK+00k+8R7CcoJA8l2kDZsTDCM7pEtsGFFZGkbeLuRHd0Py4L5KNzO4teMHwBFLfGyaFIktUQ==", "integrity": "sha512-+EYcHxw5khQr8f0sI0ykadoWAUrCR67Ca0ZelZHjN6EQ4O/i2x+dXoOQFAmNsXmf2MEYebT+ceyZKcqh2v38LA==",
"dependencies": { "dependencies": {
"@types/koa": "^2.13.5", "@types/koa": "^2.13.5",
"@types/koa__router": "^12.0.0", "@types/koa__router": "^12.0.0",
"cordis-decorators": "^1.0.24", "cordis-decorators": "^1.0.26",
"minato-decorators": "^2.2.2", "minato-decorators": "^2.2.2",
"rxjs": "^7.5.6" "rxjs": "^7.5.6"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.11.1" "koishi": "^4.11.6"
} }
}, },
"node_modules/leven": { "node_modules/leven": {
...@@ -5363,9 +5359,9 @@ ...@@ -5363,9 +5359,9 @@
"peer": true "peer": true
}, },
"node_modules/object-inspect": { "node_modules/object-inspect": {
"version": "1.12.2", "version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"peer": true, "peer": true,
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
...@@ -5942,12 +5938,12 @@ ...@@ -5942,12 +5938,12 @@
} }
}, },
"node_modules/reggol": { "node_modules/reggol": {
"version": "1.3.4", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==", "integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.6", "cosmokit": "^1.4.0",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
} }
...@@ -6121,12 +6117,12 @@ ...@@ -6121,12 +6117,12 @@
} }
}, },
"node_modules/schemastery": { "node_modules/schemastery": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==", "integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.4" "cosmokit": "^1.4.0"
} }
}, },
"node_modules/schemastery-gen": { "node_modules/schemastery-gen": {
...@@ -6738,9 +6734,9 @@ ...@@ -6738,9 +6734,9 @@
} }
}, },
"node_modules/tslib": { "node_modules/tslib": {
"version": "2.4.1", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
}, },
"node_modules/tsscmp": { "node_modules/tsscmp": {
"version": "1.0.6", "version": "1.0.6",
...@@ -8185,23 +8181,23 @@ ...@@ -8185,23 +8181,23 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.11.1", "version": "4.11.6",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.6.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==", "integrity": "sha512-7Ky1q+9wPSACk5T5Oi+UjWQIQfwgZao/QnHmZjK7NaW+17NSG6MBRvu9davcayMKrs9HVcnP0kaqvS2n9z7+bA==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.1", "@minatojs/core": "^2.2.2",
"@satorijs/core": "^2.0.1", "@satorijs/core": "^2.1.2",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
"@koishijs/loader": { "@koishijs/loader": {
"version": "2.5.1", "version": "2.5.6",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.6.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==", "integrity": "sha512-2LswjTMsfqO0TCZpRs69ZbRI3RHh97/9KSitFFhplO++ZkKuqFHUwVnmFi7AbgtobybUZ+2llGtvO1cNZL13Kw==",
"peer": true, "peer": true,
"requires": { "requires": {
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
...@@ -8217,21 +8213,19 @@ ...@@ -8217,21 +8213,19 @@
"requires": {} "requires": {}
}, },
"@koishijs/utils": { "@koishijs/utils": {
"version": "6.4.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==", "integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"inaba": "^1.1.1", "inaba": "^1.1.1"
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
} }
}, },
"@minatojs/core": { "@minatojs/core": {
"version": "2.1.1", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.2.2.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==", "integrity": "sha512-bZJ58RGtZ1LSw6zsAGoejvhAfgyhPhgrBmaNbTtAam3z+8XsJtR3dU4iWEa7cV6BcWfKTyTHNBAJM+9MvkZ4mg==",
"requires": { "requires": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
...@@ -8263,37 +8257,37 @@ ...@@ -8263,37 +8257,37 @@
} }
}, },
"@satorijs/core": { "@satorijs/core": {
"version": "2.0.1", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.3.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==", "integrity": "sha512-YTX4VohtHl8kHEZmQDWzxGTI0+m5fDPTu8czBeztlTQofqouW6tUtP5h1TRJC7JqvjN/+Du6o0ilyIgIcl0Snw==",
"peer": true, "peer": true,
"requires": { "requires": {
"@satorijs/element": "^2.3.1", "@satorijs/element": "^2.3.2",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cordis-axios": "^2.2.1", "cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"reggol": "^1.3.4", "reggol": "^1.3.5",
"schemastery": "^3.6.1", "schemastery": "^3.7.0",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
"@satorijs/element": { "@satorijs/element": {
"version": "2.3.1", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.2.tgz",
"integrity": "sha512-p1hQVy56nfJ2dw1noEHkV7hKpC9yqe5u3Vla+CSPqXU12uB4zqv96rjT9n4WulNGl8XTzqWxp8q8KWqhSI8JFA==", "integrity": "sha512-XOA5/2NGFjlD7Vb/qqkesqFY3PdP7Xvbg72MspSodYbSQVJoPSPuQooa9EWB8GBkxGPDA1y8GRQoL0jlLqcm2w==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
}, },
"@satorijs/satori": { "@satorijs/satori": {
"version": "2.0.1", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.3.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==", "integrity": "sha512-7gd4q/ACRrBvCyTvODvxgf/iKxNpDg9BJy3PtbmB4dMDRixISUPmqOLVV1B1Q8XBVrtTWAuEivpOucgw7BZ8qQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1", "@satorijs/core": "2.1.3",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -8305,7 +8299,6 @@ ...@@ -8305,7 +8299,6 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
...@@ -9477,9 +9470,9 @@ ...@@ -9477,9 +9470,9 @@
} }
}, },
"content-type": { "content-type": {
"version": "1.0.4", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"peer": true "peer": true
}, },
"convert-source-map": { "convert-source-map": {
...@@ -9513,30 +9506,29 @@ ...@@ -9513,30 +9506,29 @@
"peer": true "peer": true
}, },
"cordis": { "cordis": {
"version": "2.6.0", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==", "integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.3" "cosmokit": "^1.4.0"
} }
}, },
"cordis-axios": { "cordis-axios": {
"version": "2.2.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==", "integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true, "peer": true,
"requires": { "requires": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"mime-db": "^1.52.0", "mime-db": "^1.52.0"
"schemastery": "^3.6.1"
} }
}, },
"cordis-decorators": { "cordis-decorators": {
"version": "1.0.24", "version": "1.0.26",
"resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.24.tgz", "resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.26.tgz",
"integrity": "sha512-yXD2Z0cRYTHQBh788mIADbhA7X2dV/WQfiC/4xcTrsF4R4A0ZoCQlt1AULKaGBAwD80VgNrc14Ok3SmKSRJmcQ==", "integrity": "sha512-f57gwXkTgduBXL6uwEzT1kkSQLP5eNZleQrK0hGJ+9TwwF3sbh8WQUI0NDgQcTXblV5/aCvGvHCovALKc7i2KA==",
"requires": { "requires": {
"mustache": "^4.2.0", "mustache": "^4.2.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
...@@ -10125,9 +10117,9 @@ ...@@ -10125,9 +10117,9 @@
"dev": true "dev": true
}, },
"get-intrinsic": { "get-intrinsic": {
"version": "1.1.3", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"peer": true, "peer": true,
"requires": { "requires": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
...@@ -11116,15 +11108,15 @@ ...@@ -11116,15 +11108,15 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.11.1", "version": "4.11.6",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.6.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==", "integrity": "sha512-XvsBmdVXHIzgU2v3IFe4wJakzqpKBH/dZtYCScDkq13zn/pLamI88rMxs7BYUd131lyJndzxa6jMwFVMvtYyUA==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/core": "4.11.1", "@koishijs/core": "4.11.6",
"@koishijs/loader": "^2.5.1", "@koishijs/loader": "2.5.6",
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.0.1", "@satorijs/satori": "^2.1.2",
"cac": "^6.7.14", "cac": "^6.7.14",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"kleur": "^4.1.5", "kleur": "^4.1.5",
...@@ -11133,13 +11125,13 @@ ...@@ -11133,13 +11125,13 @@
} }
}, },
"koishi-thirdeye": { "koishi-thirdeye": {
"version": "11.1.21", "version": "11.1.24",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.21.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.24.tgz",
"integrity": "sha512-7IiKSCcqPsxSaoK+00k+8R7CcoJA8l2kDZsTDCM7pEtsGFFZGkbeLuRHd0Py4L5KNzO4teMHwBFLfGyaFIktUQ==", "integrity": "sha512-+EYcHxw5khQr8f0sI0ykadoWAUrCR67Ca0ZelZHjN6EQ4O/i2x+dXoOQFAmNsXmf2MEYebT+ceyZKcqh2v38LA==",
"requires": { "requires": {
"@types/koa": "^2.13.5", "@types/koa": "^2.13.5",
"@types/koa__router": "^12.0.0", "@types/koa__router": "^12.0.0",
"cordis-decorators": "^1.0.24", "cordis-decorators": "^1.0.26",
"minato-decorators": "^2.2.2", "minato-decorators": "^2.2.2",
"rxjs": "^7.5.6" "rxjs": "^7.5.6"
} }
...@@ -11388,9 +11380,9 @@ ...@@ -11388,9 +11380,9 @@
"peer": true "peer": true
}, },
"object-inspect": { "object-inspect": {
"version": "1.12.2", "version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
"peer": true "peer": true
}, },
"on-finished": { "on-finished": {
...@@ -11790,12 +11782,12 @@ ...@@ -11790,12 +11782,12 @@
"dev": true "dev": true
}, },
"reggol": { "reggol": {
"version": "1.3.4", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==", "integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.6", "cosmokit": "^1.4.0",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
} }
...@@ -11905,12 +11897,12 @@ ...@@ -11905,12 +11897,12 @@
} }
}, },
"schemastery": { "schemastery": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==", "integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.4" "cosmokit": "^1.4.0"
} }
}, },
"schemastery-gen": { "schemastery-gen": {
...@@ -12329,9 +12321,9 @@ ...@@ -12329,9 +12321,9 @@
} }
}, },
"tslib": { "tslib": {
"version": "2.4.1", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
}, },
"tsscmp": { "tsscmp": {
"version": "1.0.6", "version": "1.0.6",
......
...@@ -49,11 +49,11 @@ ...@@ -49,11 +49,11 @@
"form-data": "^4.0.0", "form-data": "^4.0.0",
"koa-wechat-public": "^0.1.13", "koa-wechat-public": "^0.1.13",
"koa-xml-body": "^2.2.0", "koa-xml-body": "^2.2.0",
"koishi-thirdeye": "^11.1.21", "koishi-thirdeye": "^11.1.24",
"mime2ext": "^1.0.1" "mime2ext": "^1.0.1"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.11.1" "koishi": "^4.11.6"
}, },
"devDependencies": { "devDependencies": {
"@koishijs/plugin-help": "^2.0.2", "@koishijs/plugin-help": "^2.0.2",
......
...@@ -34,6 +34,7 @@ import path from 'path'; ...@@ -34,6 +34,7 @@ import path from 'path';
import { Readable } from 'stream'; import { Readable } from 'stream';
import { WechatAdapter } from './adapter'; import { WechatAdapter } from './adapter';
import XmlParser from 'koa-xml-body'; import XmlParser from 'koa-xml-body';
import { WechatConsumerMessenger } from './message';
export * from './config'; export * from './config';
declare module 'koishi' { declare module 'koishi' {
...@@ -54,7 +55,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> { ...@@ -54,7 +55,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> {
internal: WechatApplication; internal: WechatApplication;
private menuMap = new Map<string, string>(); private menuMap = new Map<string, string>();
@Inject() @Inject()
private http: Quester; http: Quester;
@InjectLogger() @InjectLogger()
private logger: Logger; private logger: Logger;
...@@ -130,7 +131,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> { ...@@ -130,7 +131,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> {
} }
} }
private async uploadMedia(element: Element) { async uploadMedia(element: Element) {
try { try {
const { type } = element; const { type } = element;
const uploadType = type === 'audio' ? 'voice' : type; const uploadType = type === 'audio' ? 'voice' : type;
...@@ -213,7 +214,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> { ...@@ -213,7 +214,7 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> {
session.subtype = 'private'; session.subtype = 'private';
session.author = { userId: acc.fromUser }; session.author = { userId: acc.fromUser };
} }
const reply = await session.process(); const reply = await session.process(4500);
if (reply?.length) { if (reply?.length) {
await this.setReply(acc.send, segment.normalize(reply)); await this.setReply(acc.send, segment.normalize(reply));
} }
...@@ -280,14 +281,16 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> { ...@@ -280,14 +281,16 @@ export default class WechatBot extends Bot<Partial<WechatOfficialConfig>> {
guildId?: string, guildId?: string,
options?: SendOptions, options?: SendOptions,
): Promise<string[]> { ): Promise<string[]> {
return []; return this.sendPrivateMessage(channelId, content, options);
} }
async sendPrivateMessage( async sendPrivateMessage(
userId: string, userId: string,
content: segment.Fragment, content: segment.Fragment,
options?: SendOptions, options?: SendOptions,
): Promise<string[]> { ): Promise<string[]> {
return []; return new WechatConsumerMessenger(this, userId, undefined, options).send(
content,
);
} }
async getMessage( async getMessage(
channelId: string, channelId: string,
......
import { Logger, Messenger, Random, segment } from 'koishi';
import WechatBot from './index';
interface ConsumerMessagePayload {
msgtype: 'text' | 'image' | 'voice' | 'video';
touser?: string;
text?: {
content: string;
};
image?: {
media_id: string;
};
voice?: {
media_id: string;
};
video?: {
media_id: string;
thumb_media_id?: string;
title: string;
description: string;
};
}
export class WechatConsumerMessenger extends Messenger<WechatBot> {
logger = new Logger('wechat-consumer-messenger');
async sendConsumer(payload: ConsumerMessagePayload) {
const token = await this.bot.internal.getAccessToken();
let success = false;
try {
const result = await this.bot.http.post<{
errcode: number;
errmsg: string;
}>(
'https://api.weixin.qq.com/cgi-bin/message/custom/send',
{
touser: this.channelId,
...payload,
},
{
params: {
access_token: token,
},
},
);
if (result.errcode > 0) {
this.logger.warn(
`Send consumer message failed: ${result.errcode} ${result.errmsg}`,
);
} else {
success = true;
}
} catch (e) {
this.logger.error(`Send consumer message errored: ${e.message}`);
}
if (success) {
const session = this.bot.session();
session.messageId = Random.id();
session.app.emit(session, 'send', session);
this.results.push(session);
}
}
private buffer = '';
async flush() {
const content = this.buffer.trim();
if (content) {
await this.sendConsumer({
msgtype: 'text',
text: {
content,
},
});
}
}
text(text: string) {
this.buffer += text;
}
async visit(element: segment) {
const { type, attrs, children } = element;
switch (type) {
case 'text':
this.text(attrs.content);
break;
case 'p':
await this.render(children);
this.text('\n');
break;
case 'a':
this.text(element.toString());
break;
case 'at':
if (attrs.id) {
this.text(`@${attrs.id}`);
} else if (attrs.type === 'all') {
this.text('@全体成员');
} else if (attrs.type === 'here') {
this.text('@在线成员');
} else if (attrs.role) {
this.text(`@${attrs.role}`);
}
break;
case 'sharp':
this.text(` #${attrs.name} `);
break;
case 'message':
await this.flush();
await this.render(children);
await this.flush();
break;
case 'image':
case 'voice':
case 'video':
await this.flush();
const mediaId = await this.bot.uploadMedia(element);
if (mediaId) {
await this.sendConsumer({
msgtype: type,
[type]: {
media_id: mediaId,
title: attrs.title,
description: attrs.description,
},
});
}
break;
default:
await this.render(children);
}
}
}
import { Element } from 'koishi'; import { Element } from 'koishi';
const patternTypes = ['message', 'p', 'a']; const patternTypes = ['message', 'p'];
export function getFirstElement(elements: Element[]): Element { export function getFirstElement(elements: Element[]): Element {
if (!elements.length) return; if (!elements.length) return;
...@@ -18,12 +18,11 @@ export function getPlainText(elements: Element[]) { ...@@ -18,12 +18,11 @@ export function getPlainText(elements: Element[]) {
for (const element of elements) { for (const element of elements) {
if (element.type === 'text') { if (element.type === 'text') {
buffer += element.attrs.content; buffer += element.attrs.content;
} else if (element.type === 'a') {
buffer += element.toString();
} else if (patternTypes.includes(element.type)) { } else if (patternTypes.includes(element.type)) {
buffer += getPlainText(element.children); buffer += getPlainText(element.children);
buffer += '\n'; buffer += '\n';
if (element.type === 'a' && element.attrs.href) {
buffer += ` (${element.attrs.href})`;
}
} else if (element.type === 'at') { } else if (element.type === 'at') {
if (element.attrs.id) { if (element.attrs.id) {
buffer += `@${element.attrs.id}`; buffer += `@${element.attrs.id}`;
......
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