Commit 803fb563 authored by nanahira's avatar nanahira

catchup

parent f0e851f6
......@@ -10,7 +10,7 @@
"license": "MIT",
"dependencies": {
"ip": "^1.1.5",
"koishi-thirdeye": "^4.0.0",
"koishi-thirdeye": "^4.2.2",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"source-map-support": "^0.5.21",
......@@ -25,7 +25,7 @@
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.1",
"koishi": "^4.0.0-beta.3",
"koishi": "^4.0.0-beta.4",
"prettier": "^2.4.1",
"raw-loader": "^4.0.2",
"ts-loader": "^9.2.6",
......@@ -35,7 +35,7 @@
"ws": "^8.2.3"
},
"peerDependencies": {
"koishi": "^4.0.0-beta.3"
"koishi": "^4.0.0-beta.4"
}
},
"node_modules/@babel/code-frame": {
......@@ -215,29 +215,18 @@
}
},
"node_modules/@koishijs/core": {
"version": "4.0.0-beta.3",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.3.tgz",
"integrity": "sha512-ZCdjZOQ4yNN49/LdOzHKo61j/S+GwqckM116tXrZYF7gNHRZ5486HFJqJjYDCYO3n2AZvQ4nV6w8OSaoIXIPEQ==",
"version": "4.0.0-beta.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.4.tgz",
"integrity": "sha512-i+66ZR3mSAIm1pJmC21QID8QhqJDdJ7zmZ8pCn3mPcfZFGiwL8MDMvwuDvG2ceCyILmtzmXwstURrc2tjB+QPg==",
"dependencies": {
"@koishijs/utils": "^5.0.0-beta.1",
"fastest-levenshtein": "^1.0.12",
"schemastery": "^2.0.0"
"schemastery": "^2.1.0"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/@koishijs/plugin-cache-lru": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-beta.2.tgz",
"integrity": "sha512-RkLf6Gb+bvJcfBv9ZtfsEFo7NcCr+buQgiKccllfU5rANvUW5uXlPmjcTmV6AaKAr7fDZsCR3GRusiJtzS7STQ==",
"dependencies": {
"lru-cache": "^6.0.0"
},
"peerDependencies": {
"koishi": "^4.0.0-beta.3"
}
},
"node_modules/@koishijs/utils": {
"version": "5.0.0-beta.1",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-5.0.0-beta.1.tgz",
......@@ -2662,13 +2651,12 @@
}
},
"node_modules/koishi": {
"version": "4.0.0-beta.3",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.3.tgz",
"integrity": "sha512-sWTOU4maJnsRU7w8Upw8rBT1aZ0zEfN9Cs02tR2UP7qdmZiRTyrjWWFElaMhmnoj+6nTH7Udihmwb4MwbBimfA==",
"version": "4.0.0-beta.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.4.tgz",
"integrity": "sha512-H0ci/bZ+wHDCnNmLFM125RI+cdprz3McJLEbyK43tGsGuf2y13BuFb+j1ovb6FBRuT3SXlDqH+BpVMlCV2ZaVg==",
"dependencies": {
"@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-beta.3",
"@koishijs/plugin-cache-lru": "^1.0.0-beta.2",
"@koishijs/core": "^4.0.0-beta.4",
"@koishijs/utils": "^5.0.0-beta.1",
"@types/koa": "*",
"@types/koa__router": "*",
......@@ -2685,17 +2673,18 @@
}
},
"node_modules/koishi-thirdeye": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-4.0.0.tgz",
"integrity": "sha512-xaVceoDmEMJpOiucdygIYWh289SxfcBznskBsPubszAzka7GcS3769Z855SxSnElQ236RiS82JaQukWPF8akEQ==",
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-4.2.2.tgz",
"integrity": "sha512-q0Cs8PcWhNNHUzU/S3Ds1BqUi3hJ4AIbkCz3MDRbQ2+qQ7y799+B5ZqhB2kbIOqCutkEgHxJg/Oxy+cK2aQVhQ==",
"dependencies": {
"lodash": "^4.17.21",
"reflect-metadata": "^0.1.13",
"schemastery": "^2.0.0",
"schemastery-gen": "^2.0.0",
"typed-reflector": "^1.0.5"
"schemastery": "^2.1.0",
"schemastery-gen": "^2.2.4",
"typed-reflector": "^1.0.8"
},
"peerDependencies": {
"koishi": "^4.0.0-beta.3"
"koishi": "^4.0.0-beta.4"
}
},
"node_modules/levn": {
......@@ -2766,6 +2755,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
......@@ -3535,21 +3525,21 @@
}
},
"node_modules/schemastery": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-2.0.0.tgz",
"integrity": "sha512-g628Fvc8cY3Laoyz+v45qZGiClwhTj0MsiGF+tSVlUh+hqYf6kVkTaWdIHNGhfj11h9QzRrs0A4wfvQZuHg3iA=="
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-2.1.0.tgz",
"integrity": "sha512-D5wGNn5lc8GnhTzSl2ClH6RwUB69NMUrIXn6qWJVZSSq1fJtEodL9zXoJUbzoLQlL7rGMuO6entajhZvJY25Tw=="
},
"node_modules/schemastery-gen": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/schemastery-gen/-/schemastery-gen-2.0.0.tgz",
"integrity": "sha512-lTttqIWwNM8nizqUpUvJOERtb+Su4qkNe5Lp0ruINiZlCuN/HBCAOmf+OcdAlWLW8BRAY+xIzf4o1Kl043HVVQ==",
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/schemastery-gen/-/schemastery-gen-2.2.4.tgz",
"integrity": "sha512-WHneTi+RSo28DRMV/Nxspw/Vyv0c2vExBNskxRTdf/Dik6ZTwF4cC5y9eSas+99kctqgxJKBBBcf9vp9mqPYzQ==",
"dependencies": {
"lodash": "^4.17.21",
"reflect-metadata": "^0.1.13",
"typed-reflector": "^1.0.5"
"typed-reflector": "^1.0.8"
},
"peerDependencies": {
"schemastery": "^2.0.0"
"schemastery": "^2.1.0"
}
},
"node_modules/semver": {
......@@ -4072,9 +4062,9 @@
}
},
"node_modules/typed-reflector": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/typed-reflector/-/typed-reflector-1.0.5.tgz",
"integrity": "sha512-uVXjRyfia44NftErLxahyXgXN2C9GhLtFvVnUxdjwU4fRn0dFI+MbqEKy8oYAMdVkC8xRh8xm3r4w/C1aYZMXg==",
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/typed-reflector/-/typed-reflector-1.0.8.tgz",
"integrity": "sha512-Gc2y1jdXpBrRDhTth80ABcmZjL/4Jmx+GrBf7uvn4BXW4J+kj5V3IjA+GQl/n+3ye7SgoEO6HOiDhac1H+mKgw==",
"dependencies": {
"reflect-metadata": "^0.1.13"
}
......@@ -4368,7 +4358,8 @@
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/yargs-parser": {
"version": "20.2.9",
......@@ -4541,21 +4532,13 @@
}
},
"@koishijs/core": {
"version": "4.0.0-beta.3",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.3.tgz",
"integrity": "sha512-ZCdjZOQ4yNN49/LdOzHKo61j/S+GwqckM116tXrZYF7gNHRZ5486HFJqJjYDCYO3n2AZvQ4nV6w8OSaoIXIPEQ==",
"version": "4.0.0-beta.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.4.tgz",
"integrity": "sha512-i+66ZR3mSAIm1pJmC21QID8QhqJDdJ7zmZ8pCn3mPcfZFGiwL8MDMvwuDvG2ceCyILmtzmXwstURrc2tjB+QPg==",
"requires": {
"@koishijs/utils": "^5.0.0-beta.1",
"fastest-levenshtein": "^1.0.12",
"schemastery": "^2.0.0"
}
},
"@koishijs/plugin-cache-lru": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-beta.2.tgz",
"integrity": "sha512-RkLf6Gb+bvJcfBv9ZtfsEFo7NcCr+buQgiKccllfU5rANvUW5uXlPmjcTmV6AaKAr7fDZsCR3GRusiJtzS7STQ==",
"requires": {
"lru-cache": "^6.0.0"
"schemastery": "^2.1.0"
}
},
"@koishijs/utils": {
......@@ -6415,13 +6398,12 @@
}
},
"koishi": {
"version": "4.0.0-beta.3",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.3.tgz",
"integrity": "sha512-sWTOU4maJnsRU7w8Upw8rBT1aZ0zEfN9Cs02tR2UP7qdmZiRTyrjWWFElaMhmnoj+6nTH7Udihmwb4MwbBimfA==",
"version": "4.0.0-beta.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.4.tgz",
"integrity": "sha512-H0ci/bZ+wHDCnNmLFM125RI+cdprz3McJLEbyK43tGsGuf2y13BuFb+j1ovb6FBRuT3SXlDqH+BpVMlCV2ZaVg==",
"requires": {
"@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-beta.3",
"@koishijs/plugin-cache-lru": "^1.0.0-beta.2",
"@koishijs/core": "^4.0.0-beta.4",
"@koishijs/utils": "^5.0.0-beta.1",
"@types/koa": "*",
"@types/koa__router": "*",
......@@ -6435,14 +6417,15 @@
}
},
"koishi-thirdeye": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-4.0.0.tgz",
"integrity": "sha512-xaVceoDmEMJpOiucdygIYWh289SxfcBznskBsPubszAzka7GcS3769Z855SxSnElQ236RiS82JaQukWPF8akEQ==",
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-4.2.2.tgz",
"integrity": "sha512-q0Cs8PcWhNNHUzU/S3Ds1BqUi3hJ4AIbkCz3MDRbQ2+qQ7y799+B5ZqhB2kbIOqCutkEgHxJg/Oxy+cK2aQVhQ==",
"requires": {
"lodash": "^4.17.21",
"reflect-metadata": "^0.1.13",
"schemastery": "^2.0.0",
"schemastery-gen": "^2.0.0",
"typed-reflector": "^1.0.5"
"schemastery": "^2.1.0",
"schemastery-gen": "^2.2.4",
"typed-reflector": "^1.0.8"
}
},
"levn": {
......@@ -6501,6 +6484,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
}
......@@ -7058,18 +7042,18 @@
}
},
"schemastery": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-2.0.0.tgz",
"integrity": "sha512-g628Fvc8cY3Laoyz+v45qZGiClwhTj0MsiGF+tSVlUh+hqYf6kVkTaWdIHNGhfj11h9QzRrs0A4wfvQZuHg3iA=="
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-2.1.0.tgz",
"integrity": "sha512-D5wGNn5lc8GnhTzSl2ClH6RwUB69NMUrIXn6qWJVZSSq1fJtEodL9zXoJUbzoLQlL7rGMuO6entajhZvJY25Tw=="
},
"schemastery-gen": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/schemastery-gen/-/schemastery-gen-2.0.0.tgz",
"integrity": "sha512-lTttqIWwNM8nizqUpUvJOERtb+Su4qkNe5Lp0ruINiZlCuN/HBCAOmf+OcdAlWLW8BRAY+xIzf4o1Kl043HVVQ==",
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/schemastery-gen/-/schemastery-gen-2.2.4.tgz",
"integrity": "sha512-WHneTi+RSo28DRMV/Nxspw/Vyv0c2vExBNskxRTdf/Dik6ZTwF4cC5y9eSas+99kctqgxJKBBBcf9vp9mqPYzQ==",
"requires": {
"lodash": "^4.17.21",
"reflect-metadata": "^0.1.13",
"typed-reflector": "^1.0.5"
"typed-reflector": "^1.0.8"
}
},
"semver": {
......@@ -7446,9 +7430,9 @@
}
},
"typed-reflector": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/typed-reflector/-/typed-reflector-1.0.5.tgz",
"integrity": "sha512-uVXjRyfia44NftErLxahyXgXN2C9GhLtFvVnUxdjwU4fRn0dFI+MbqEKy8oYAMdVkC8xRh8xm3r4w/C1aYZMXg==",
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/typed-reflector/-/typed-reflector-1.0.8.tgz",
"integrity": "sha512-Gc2y1jdXpBrRDhTth80ABcmZjL/4Jmx+GrBf7uvn4BXW4J+kj5V3IjA+GQl/n+3ye7SgoEO6HOiDhac1H+mKgw==",
"requires": {
"reflect-metadata": "^0.1.13"
}
......@@ -7641,7 +7625,8 @@
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"yargs-parser": {
"version": "20.2.9",
......
......@@ -7,22 +7,22 @@ import path from 'path';
@RegisterSchema()
export class HisoutensokuJammerPluginConfig {
@DefineSchema({ desc: '干扰时间', default: 10000 })
@DefineSchema({ description: '干扰时间', default: 10000 })
attackTimeout: number;
@DefineSchema({ desc: 'IP 白名单', default: [], type: 'string' })
@DefineSchema({ description: 'IP 白名单', default: [], type: 'string' })
addressWhitelist: string[];
@DefineSchema({ desc: '开启文字识别', default: false })
@DefineSchema({ description: '开启文字识别', default: false })
ocr: boolean;
@DefineSchema({ desc: '模型语言', default: 'eng' })
@DefineSchema({ description: '模型语言', default: 'eng' })
ocrLanguage: string;
@DefineSchema({ type: 'object', allowUnknown: true })
@DefineSchema({ type: 'object' })
ocrExtraOptions: Partial<Tesseract.WorkerOptions>;
@DefineSchema({ type: 'object', allowUnknown: true })
@DefineSchema({ type: 'object' })
ocrExtraParameters: Partial<Tesseract.WorkerParams>;
async loadOcr() {
......
......@@ -11,6 +11,7 @@ import {
InjectLogger,
Inject,
UseEvent,
OnConnect,
} from 'koishi-thirdeye';
import { Attacker } from './attacker';
import moment from 'moment';
......@@ -38,7 +39,7 @@ const PROTOCOL_BASE64 = 'base64://';
name: 'hisoutensoku-jammer',
schema: HisoutensokuJammerPluginConfig,
})
export default class HisoutensokuJammerPlugin {
export default class HisoutensokuJammerPlugin implements OnConnect {
constructor(
private ctx: Context,
config: HisoutensokuJammerPluginConfigLike,
......@@ -47,11 +48,10 @@ export default class HisoutensokuJammerPlugin {
@InjectLogger()
private log: Logger;
@Inject('cache')
@Inject('cache', true)
private cache: Cache;
@UseEvent('service/cache')
initializeCacheTable() {
onConnect() {
this.cache.table('lastMessages', { maxAge: 600000 });
}
......
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