Commit ef418c37 authored by nanahira's avatar nanahira

total rework

parent 34b9b185
...@@ -9,8 +9,7 @@ ...@@ -9,8 +9,7 @@
"version": "6.0.3", "version": "6.0.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"koishi-thirdeye": "^11.0.7", "koishi-thirdeye": "^11.0.9"
"moment": "^2.29.1"
}, },
"devDependencies": { "devDependencies": {
"@koishijs/plugin-console": "^4.1.1", "@koishijs/plugin-console": "^4.1.1",
...@@ -37,7 +36,7 @@ ...@@ -37,7 +36,7 @@
"ws": "^8.4.0" "ws": "^8.4.0"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.8.3", "koishi": "^4.8.4",
"koishi-plugin-cache-aragami": "^2.1.0" "koishi-plugin-cache-aragami": "^2.1.0"
} }
}, },
...@@ -1065,16 +1064,16 @@ ...@@ -1065,16 +1064,16 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.8.3", "version": "4.8.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.8.3.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.8.4.tgz",
"integrity": "sha512-tgj6tv+ZWgJ7FXBEM2piQbLKqVjH3tDPn+EB6M95Ih4+YwU4dz8yunNTXlvE6GL65IwNEMUgjrEY5LScqVg1Ng==", "integrity": "sha512-lkqaS6gVTajxqBszGN5ey0cj52vcdzi5DTh0ZYnfeumjuChUewC/yG5uHh69jzqQ+diRi5jhYygBP13b9aJC6Q==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^6.0.0", "@koishijs/utils": "^6.0.0",
"@satorijs/core": "^1.0.6", "@satorijs/core": "^1.0.7",
"cordis": "^2.0.6", "cordis": "^2.0.6",
"fastest-levenshtein": "^1.0.12", "fastest-levenshtein": "^1.0.14",
"minato": "^1.2.3" "minato": "^1.2.4"
} }
}, },
"node_modules/@koishijs/plugin-console": { "node_modules/@koishijs/plugin-console": {
...@@ -1183,9 +1182,9 @@ ...@@ -1183,9 +1182,9 @@
} }
}, },
"node_modules/@satorijs/core": { "node_modules/@satorijs/core": {
"version": "1.0.6", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.0.9.tgz",
"integrity": "sha512-TUbBmHWUXiUhWyNbM2tIN/if6VvhS4waF1HfAmZM+omWlZ42V+BY6Dl7JWGKk2zreq+VXsrUri7M4hgKon1QWg==", "integrity": "sha512-/Zx33Ufw3bIC9U//Vf2A6KmQ5LTisi4fWn882/euk66sMHyBPsiE0kWQi4OnKxkqEX/0bn5Hyh7cZX7/2cou3g==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@satorijs/message": "^1.0.1", "@satorijs/message": "^1.0.1",
...@@ -1200,13 +1199,13 @@ ...@@ -1200,13 +1199,13 @@
"peer": true "peer": true
}, },
"node_modules/@satorijs/satori": { "node_modules/@satorijs/satori": {
"version": "1.0.6", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.0.9.tgz",
"integrity": "sha512-+rNi5NWbO6Sny3BjBO9wxsgTn/kqy9OsObQ4p6xMpsnBiNAQnqUnVFQ2ze3Aaru2EJQJIXnNPnY3JMaayebREA==", "integrity": "sha512-UU3+1IQjKyzJlmjZ5ir+VSVawGz+m/06kDfokPtjs3Atl20QkBkzAGT6UO4YDlcAu+melWgQYl1HmU5wPo6bIA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "^1.0.6", "@satorijs/core": "^1.0.9",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -1218,8 +1217,8 @@ ...@@ -1218,8 +1217,8 @@
"portfinder": "^1.0.28", "portfinder": "^1.0.28",
"proxy-agent": "^5.0.0", "proxy-agent": "^5.0.0",
"reggol": "^1.0.3", "reggol": "^1.0.3",
"schemastery": "^3.5.0", "schemastery": "^3.5.1",
"ws": "^8.6.0" "ws": "^8.8.1"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
...@@ -2687,9 +2686,9 @@ ...@@ -2687,9 +2686,9 @@
} }
}, },
"node_modules/cordis-decorators": { "node_modules/cordis-decorators": {
"version": "1.0.18", "version": "1.0.19",
"resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.18.tgz", "resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.19.tgz",
"integrity": "sha512-Q18OCfxAoMuG6UnpKDP51aL6CufW2jp22hSJInAgzaB+YPAPRrgdhMs53qCx6hajYuWpgUQ+lipFcVL6TSuxBA==", "integrity": "sha512-ELMLhrn1KLEfNDU9P5eF0Ze/tYf0gwvsyGxwS7dA3iR57n6koIL1XMp8ae7RqCzO7bia93f3uTyL3wJfOKkkAQ==",
"dependencies": { "dependencies": {
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mustache": "^4.2.0", "mustache": "^4.2.0",
...@@ -3925,9 +3924,12 @@ ...@@ -3925,9 +3924,12 @@
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
}, },
"node_modules/fastest-levenshtein": { "node_modules/fastest-levenshtein": {
"version": "1.0.12", "version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
"integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
"engines": {
"node": ">= 4.9.1"
}
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.13.0", "version": "1.13.0",
...@@ -3960,9 +3962,9 @@ ...@@ -3960,9 +3962,9 @@
} }
}, },
"node_modules/file-type": { "node_modules/file-type": {
"version": "16.5.3", "version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"readable-web-to-node-stream": "^3.0.0", "readable-web-to-node-stream": "^3.0.0",
...@@ -5709,15 +5711,15 @@ ...@@ -5709,15 +5711,15 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.8.3", "version": "4.8.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.8.3.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.8.4.tgz",
"integrity": "sha512-2FXVGoOn+TicAtV1ZvHpn58h9FRmudcj4VipLt3zvzxS/FIVN766dTu11IhRGCcwOjLEscGsGHAXLAQAJs6giA==", "integrity": "sha512-E8tW5fz0WauUwgRl8siqzO2J6uJPi5CWGgPE8OwaR2MJsQxL06p6kR0hJAvXf3b8ugXRR0Wdsox9A0Mt6WQydQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/core": "^4.8.3", "@koishijs/core": "^4.8.4",
"@koishijs/utils": "^6.0.0", "@koishijs/utils": "^6.0.0",
"@satorijs/satori": "^1.0.6", "@satorijs/satori": "^1.0.7",
"file-type": "^16.5.3", "file-type": "^16.5.4",
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
}, },
"engines": { "engines": {
...@@ -5738,17 +5740,17 @@ ...@@ -5738,17 +5740,17 @@
} }
}, },
"node_modules/koishi-thirdeye": { "node_modules/koishi-thirdeye": {
"version": "11.0.7", "version": "11.0.9",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.0.7.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.0.9.tgz",
"integrity": "sha512-BltlqU5qCHFgEadmiZOQXR2DYJP7wqSVqtUDklvKSn7J6LJRdEGV63E9OFcC0LIlCpjUautqHku6bvZ4oadlFw==", "integrity": "sha512-ATPX7VVFs8EDkgpfR59Stn5msVQVmk35+7Ue/+UqxYHifnfWafDK14ydbHx8JvglcjTu8tiR/yjaF1Z/JngLfQ==",
"dependencies": { "dependencies": {
"lodash": "^4.17.21", "lodash": "^4.17.21",
"minato-decorators": "^2.0.8", "minato-decorators": "^2.0.8",
"rxjs": "^7.5.6", "rxjs": "^7.5.6",
"satori-decorators": "^1.0.11" "satori-decorators": "^1.0.12"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.8.3", "koishi": "^4.8.4",
"schemastery": "^3.4.3" "schemastery": "^3.4.3"
} }
}, },
...@@ -5972,9 +5974,9 @@ ...@@ -5972,9 +5974,9 @@
} }
}, },
"node_modules/minato": { "node_modules/minato": {
"version": "1.2.3", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/minato/-/minato-1.2.3.tgz", "resolved": "https://registry.npmjs.org/minato/-/minato-1.2.4.tgz",
"integrity": "sha512-06+ytX+prjYykoaqYe48tAGRbbG5WME1MEpb1WQUPhT6qxGSYmeqJyFX97Hlux4HruJfKpRCzsX6dhYRc9XkTA==", "integrity": "sha512-YnlM7WKTKY1I6cKccpnmnKU7zkCi48xfWxorVdjIAt+Tpv7YwIw/VQNcz1vq9HQJW0Utk5e0mr+nQGoC2ae/yQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.2.1", "cosmokit": "^1.2.1",
...@@ -6022,14 +6024,6 @@ ...@@ -6022,14 +6024,6 @@
"mkdirp": "bin/cmd.js" "mkdirp": "bin/cmd.js"
} }
}, },
"node_modules/moment": {
"version": "2.29.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
"engines": {
"node": "*"
}
},
"node_modules/ms": { "node_modules/ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
...@@ -6372,9 +6366,9 @@ ...@@ -6372,9 +6366,9 @@
} }
}, },
"node_modules/peek-readable": { "node_modules/peek-readable": {
"version": "4.0.2", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
"integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==",
"peer": true, "peer": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
...@@ -6947,13 +6941,13 @@ ...@@ -6947,13 +6941,13 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/satori-decorators": { "node_modules/satori-decorators": {
"version": "1.0.11", "version": "1.0.12",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.0.11.tgz", "resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.0.12.tgz",
"integrity": "sha512-k58rG/JqiySFEJISBt0yZN2Jo278PYmHI/Q/0kbphTMqORNXkMbtdOao7lYtgosRq/Qntefg87qZCW5OZYv0rg==", "integrity": "sha512-DUfWfkC0+4sS2TUlodoYYxrQYrTIambjL+Y2TwClvPdRHV+BigHPpLT68QVjUiId0a3VuMKLJdbszfb/MQJbDA==",
"dependencies": { "dependencies": {
"@types/koa": "^2.13.5", "@types/koa": "^2.13.5",
"@types/koa__router": "^8.0.11", "@types/koa__router": "^8.0.11",
"cordis-decorators": "^1.0.18", "cordis-decorators": "^1.0.19",
"lodash": "^4.17.21" "lodash": "^4.17.21"
}, },
"peerDependencies": { "peerDependencies": {
...@@ -7332,13 +7326,13 @@ ...@@ -7332,13 +7326,13 @@
} }
}, },
"node_modules/strtok3": { "node_modules/strtok3": {
"version": "6.2.4", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz",
"integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@tokenizer/token": "^0.3.0", "@tokenizer/token": "^0.3.0",
"peek-readable": "^4.0.1" "peek-readable": "^4.1.0"
}, },
"engines": { "engines": {
"node": ">=10" "node": ">=10"
...@@ -7613,9 +7607,9 @@ ...@@ -7613,9 +7607,9 @@
} }
}, },
"node_modules/token-types": { "node_modules/token-types": {
"version": "4.1.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz",
"integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@tokenizer/token": "^0.3.0", "@tokenizer/token": "^0.3.0",
...@@ -7920,7 +7914,7 @@ ...@@ -7920,7 +7914,7 @@
"node_modules/util-deprecate": { "node_modules/util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"peer": true "peer": true
}, },
"node_modules/uuid": { "node_modules/uuid": {
...@@ -8296,9 +8290,9 @@ ...@@ -8296,9 +8290,9 @@
} }
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "8.6.0", "version": "8.8.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
"integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
}, },
...@@ -9199,16 +9193,16 @@ ...@@ -9199,16 +9193,16 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.8.3", "version": "4.8.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.8.3.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.8.4.tgz",
"integrity": "sha512-tgj6tv+ZWgJ7FXBEM2piQbLKqVjH3tDPn+EB6M95Ih4+YwU4dz8yunNTXlvE6GL65IwNEMUgjrEY5LScqVg1Ng==", "integrity": "sha512-lkqaS6gVTajxqBszGN5ey0cj52vcdzi5DTh0ZYnfeumjuChUewC/yG5uHh69jzqQ+diRi5jhYygBP13b9aJC6Q==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/utils": "^6.0.0", "@koishijs/utils": "^6.0.0",
"@satorijs/core": "^1.0.6", "@satorijs/core": "^1.0.7",
"cordis": "^2.0.6", "cordis": "^2.0.6",
"fastest-levenshtein": "^1.0.12", "fastest-levenshtein": "^1.0.14",
"minato": "^1.2.3" "minato": "^1.2.4"
} }
}, },
"@koishijs/plugin-console": { "@koishijs/plugin-console": {
...@@ -9294,9 +9288,9 @@ ...@@ -9294,9 +9288,9 @@
} }
}, },
"@satorijs/core": { "@satorijs/core": {
"version": "1.0.6", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.0.9.tgz",
"integrity": "sha512-TUbBmHWUXiUhWyNbM2tIN/if6VvhS4waF1HfAmZM+omWlZ42V+BY6Dl7JWGKk2zreq+VXsrUri7M4hgKon1QWg==", "integrity": "sha512-/Zx33Ufw3bIC9U//Vf2A6KmQ5LTisi4fWn882/euk66sMHyBPsiE0kWQi4OnKxkqEX/0bn5Hyh7cZX7/2cou3g==",
"peer": true, "peer": true,
"requires": { "requires": {
"@satorijs/message": "^1.0.1", "@satorijs/message": "^1.0.1",
...@@ -9311,13 +9305,13 @@ ...@@ -9311,13 +9305,13 @@
"peer": true "peer": true
}, },
"@satorijs/satori": { "@satorijs/satori": {
"version": "1.0.6", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.0.9.tgz",
"integrity": "sha512-+rNi5NWbO6Sny3BjBO9wxsgTn/kqy9OsObQ4p6xMpsnBiNAQnqUnVFQ2ze3Aaru2EJQJIXnNPnY3JMaayebREA==", "integrity": "sha512-UU3+1IQjKyzJlmjZ5ir+VSVawGz+m/06kDfokPtjs3Atl20QkBkzAGT6UO4YDlcAu+melWgQYl1HmU5wPo6bIA==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "^1.0.6", "@satorijs/core": "^1.0.9",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -9329,8 +9323,8 @@ ...@@ -9329,8 +9323,8 @@
"portfinder": "^1.0.28", "portfinder": "^1.0.28",
"proxy-agent": "^5.0.0", "proxy-agent": "^5.0.0",
"reggol": "^1.0.3", "reggol": "^1.0.3",
"schemastery": "^3.5.0", "schemastery": "^3.5.1",
"ws": "^8.6.0" "ws": "^8.8.1"
} }
}, },
"@sinonjs/commons": { "@sinonjs/commons": {
...@@ -10548,9 +10542,9 @@ ...@@ -10548,9 +10542,9 @@
} }
}, },
"cordis-decorators": { "cordis-decorators": {
"version": "1.0.18", "version": "1.0.19",
"resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.18.tgz", "resolved": "https://registry.npmjs.org/cordis-decorators/-/cordis-decorators-1.0.19.tgz",
"integrity": "sha512-Q18OCfxAoMuG6UnpKDP51aL6CufW2jp22hSJInAgzaB+YPAPRrgdhMs53qCx6hajYuWpgUQ+lipFcVL6TSuxBA==", "integrity": "sha512-ELMLhrn1KLEfNDU9P5eF0Ze/tYf0gwvsyGxwS7dA3iR57n6koIL1XMp8ae7RqCzO7bia93f3uTyL3wJfOKkkAQ==",
"requires": { "requires": {
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mustache": "^4.2.0", "mustache": "^4.2.0",
...@@ -11385,9 +11379,9 @@ ...@@ -11385,9 +11379,9 @@
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
}, },
"fastest-levenshtein": { "fastest-levenshtein": {
"version": "1.0.12", "version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
"integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg=="
}, },
"fastq": { "fastq": {
"version": "1.13.0", "version": "1.13.0",
...@@ -11417,9 +11411,9 @@ ...@@ -11417,9 +11411,9 @@
} }
}, },
"file-type": { "file-type": {
"version": "16.5.3", "version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"peer": true, "peer": true,
"requires": { "requires": {
"readable-web-to-node-stream": "^3.0.0", "readable-web-to-node-stream": "^3.0.0",
...@@ -12715,15 +12709,15 @@ ...@@ -12715,15 +12709,15 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.8.3", "version": "4.8.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.8.3.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.8.4.tgz",
"integrity": "sha512-2FXVGoOn+TicAtV1ZvHpn58h9FRmudcj4VipLt3zvzxS/FIVN766dTu11IhRGCcwOjLEscGsGHAXLAQAJs6giA==", "integrity": "sha512-E8tW5fz0WauUwgRl8siqzO2J6uJPi5CWGgPE8OwaR2MJsQxL06p6kR0hJAvXf3b8ugXRR0Wdsox9A0Mt6WQydQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/core": "^4.8.3", "@koishijs/core": "^4.8.4",
"@koishijs/utils": "^6.0.0", "@koishijs/utils": "^6.0.0",
"@satorijs/satori": "^1.0.6", "@satorijs/satori": "^1.0.7",
"file-type": "^16.5.3", "file-type": "^16.5.4",
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
} }
}, },
...@@ -12738,14 +12732,14 @@ ...@@ -12738,14 +12732,14 @@
} }
}, },
"koishi-thirdeye": { "koishi-thirdeye": {
"version": "11.0.7", "version": "11.0.9",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.0.7.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.0.9.tgz",
"integrity": "sha512-BltlqU5qCHFgEadmiZOQXR2DYJP7wqSVqtUDklvKSn7J6LJRdEGV63E9OFcC0LIlCpjUautqHku6bvZ4oadlFw==", "integrity": "sha512-ATPX7VVFs8EDkgpfR59Stn5msVQVmk35+7Ue/+UqxYHifnfWafDK14ydbHx8JvglcjTu8tiR/yjaF1Z/JngLfQ==",
"requires": { "requires": {
"lodash": "^4.17.21", "lodash": "^4.17.21",
"minato-decorators": "^2.0.8", "minato-decorators": "^2.0.8",
"rxjs": "^7.5.6", "rxjs": "^7.5.6",
"satori-decorators": "^1.0.11" "satori-decorators": "^1.0.12"
} }
}, },
"leven": { "leven": {
...@@ -12925,9 +12919,9 @@ ...@@ -12925,9 +12919,9 @@
"dev": true "dev": true
}, },
"minato": { "minato": {
"version": "1.2.3", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/minato/-/minato-1.2.3.tgz", "resolved": "https://registry.npmjs.org/minato/-/minato-1.2.4.tgz",
"integrity": "sha512-06+ytX+prjYykoaqYe48tAGRbbG5WME1MEpb1WQUPhT6qxGSYmeqJyFX97Hlux4HruJfKpRCzsX6dhYRc9XkTA==", "integrity": "sha512-YnlM7WKTKY1I6cKccpnmnKU7zkCi48xfWxorVdjIAt+Tpv7YwIw/VQNcz1vq9HQJW0Utk5e0mr+nQGoC2ae/yQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.2.1", "cosmokit": "^1.2.1",
...@@ -12966,11 +12960,6 @@ ...@@ -12966,11 +12960,6 @@
"minimist": "^1.2.6" "minimist": "^1.2.6"
} }
}, },
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
...@@ -13235,9 +13224,9 @@ ...@@ -13235,9 +13224,9 @@
"dev": true "dev": true
}, },
"peek-readable": { "peek-readable": {
"version": "4.0.2", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
"integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==",
"peer": true "peer": true
}, },
"picocolors": { "picocolors": {
...@@ -13639,13 +13628,13 @@ ...@@ -13639,13 +13628,13 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"satori-decorators": { "satori-decorators": {
"version": "1.0.11", "version": "1.0.12",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.0.11.tgz", "resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.0.12.tgz",
"integrity": "sha512-k58rG/JqiySFEJISBt0yZN2Jo278PYmHI/Q/0kbphTMqORNXkMbtdOao7lYtgosRq/Qntefg87qZCW5OZYv0rg==", "integrity": "sha512-DUfWfkC0+4sS2TUlodoYYxrQYrTIambjL+Y2TwClvPdRHV+BigHPpLT68QVjUiId0a3VuMKLJdbszfb/MQJbDA==",
"requires": { "requires": {
"@types/koa": "^2.13.5", "@types/koa": "^2.13.5",
"@types/koa__router": "^8.0.11", "@types/koa__router": "^8.0.11",
"cordis-decorators": "^1.0.18", "cordis-decorators": "^1.0.19",
"lodash": "^4.17.21" "lodash": "^4.17.21"
} }
}, },
...@@ -13940,13 +13929,13 @@ ...@@ -13940,13 +13929,13 @@
"dev": true "dev": true
}, },
"strtok3": { "strtok3": {
"version": "6.2.4", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz",
"integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
"peer": true, "peer": true,
"requires": { "requires": {
"@tokenizer/token": "^0.3.0", "@tokenizer/token": "^0.3.0",
"peek-readable": "^4.0.1" "peek-readable": "^4.1.0"
} }
}, },
"supports-color": { "supports-color": {
...@@ -14138,9 +14127,9 @@ ...@@ -14138,9 +14127,9 @@
"peer": true "peer": true
}, },
"token-types": { "token-types": {
"version": "4.1.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz",
"integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"@tokenizer/token": "^0.3.0", "@tokenizer/token": "^0.3.0",
...@@ -14334,7 +14323,7 @@ ...@@ -14334,7 +14323,7 @@
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"peer": true "peer": true
}, },
"uuid": { "uuid": {
...@@ -14606,9 +14595,9 @@ ...@@ -14606,9 +14595,9 @@
} }
}, },
"ws": { "ws": {
"version": "8.6.0", "version": "8.8.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz",
"integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
"requires": {} "requires": {}
}, },
"xml-name-validator": { "xml-name-validator": {
......
...@@ -29,8 +29,7 @@ ...@@ -29,8 +29,7 @@
}, },
"homepage": "https://code.mycard.moe/3rdeye/koishi-plugin-order-picker", "homepage": "https://code.mycard.moe/3rdeye/koishi-plugin-order-picker",
"dependencies": { "dependencies": {
"koishi-thirdeye": "^11.0.7", "koishi-thirdeye": "^11.0.9"
"moment": "^2.29.1"
}, },
"devDependencies": { "devDependencies": {
"@koishijs/plugin-console": "^4.1.1", "@koishijs/plugin-console": "^4.1.1",
...@@ -57,7 +56,7 @@ ...@@ -57,7 +56,7 @@
"ws": "^8.4.0" "ws": "^8.4.0"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.8.3", "koishi": "^4.8.4",
"koishi-plugin-cache-aragami": "^2.1.0" "koishi-plugin-cache-aragami": "^2.1.0"
}, },
"jest": { "jest": {
......
...@@ -48,9 +48,6 @@ export class OrderPickerConfig { ...@@ -48,9 +48,6 @@ export class OrderPickerConfig {
} }
return true; return true;
} }
@DefineSchema({ description: 'CD 时间', default: 60 })
cooldown: number;
} }
export type OrderPickerConfigLike = Partial<OrderPickerConfig>; export type OrderPickerConfigLike = Partial<OrderPickerConfig>;
// import 'source-map-support/register'; // import 'source-map-support/register';
import { Context, Session, Next, segment } from 'koishi'; import { Session, Next, segment } from 'koishi';
import { OrderPickerConfig, OrderPickerConfigLike } from './config'; import { OrderPickerConfig } from './config';
import { import {
DefinePlugin, DefinePlugin,
InjectConfig,
Inject, Inject,
UseMiddleware, UseMiddleware,
OnGuild, OnGuild,
OnPlatform, OnPlatform,
LifecycleEvents, UseCommand,
StarterPlugin,
Isolate,
UsingService,
PutSelfId,
UsePlugin,
PluginDef,
OnPrivate,
} from 'koishi-thirdeye'; } from 'koishi-thirdeye';
import moment from 'moment';
export * from './config'; export * from './config';
import AragamiPlugin, { CacheKey } from 'koishi-plugin-cache-aragami'; import AragamiPlugin, { CacheKey } from 'koishi-plugin-cache-aragami';
export class PickedOrderInfo {
sourceGuildId: string;
@CacheKey()
sourceUserId: string;
sourceUserName: string;
description: string;
time: number;
}
export class SelfOnline { export class SelfOnline {
@CacheKey() @CacheKey()
selfId: string; selfId: string;
...@@ -30,128 +26,91 @@ export class SelfOnline { ...@@ -30,128 +26,91 @@ export class SelfOnline {
online: boolean; online: boolean;
} }
@OnPlatform('onebot') const base = StarterPlugin(OrderPickerConfig);
@DefinePlugin({ name: 'order-picker', schema: OrderPickerConfig })
export default class OrderPicker implements LifecycleEvents {
constructor(private ctx: Context, config: OrderPickerConfigLike) {}
@InjectConfig()
private config: OrderPickerConfig;
@DefinePlugin()
class Utility extends base {
@Inject(true) @Inject(true)
private aragami: AragamiPlugin; private aragami: AragamiPlugin;
onApply() { async isOnline(selfId: string) {
const cmd = this.ctx const online = await this.aragami.get(SelfOnline, selfId);
.private(this.config.masterId) return !!online?.online;
.command('order-picker', '抢单管理');
cmd
.subcommand('.status', '抢单状态')
.usage('获取抢单状态')
.action(async ({ session }) => {
const online = await this.isOnline(session.selfId);
const orderInfo = await this.getLastInfo(session.selfId);
const firstLine = `抢单状态:${online ? '上班' : '下班'}`;
let secondLine = '';
if (orderInfo) {
const time = moment.unix(orderInfo.time);
const toTime = time.clone().add(this.config.cooldown, 'minutes');
secondLine = `来自群:${orderInfo.sourceGuildId}\n发布人:${
orderInfo.sourceUserName
}(${orderInfo.sourceUserId})\n描述:${
orderInfo.description
}\n时间:${time.format(
'YYYY-MM-DD HH:mm:ss',
)}\n结束时间:${toTime.format('YYYY-MM-DD HH:mm:ss')}`;
} else {
secondLine = '最近没有抢单';
}
return `${firstLine}\n${secondLine}`;
});
cmd
.subcommand('.on', '上班')
.usage('开启抢单')
.action(async ({ session }) => {
const online = await this.isOnline(session.selfId);
if (online) {
return '已经在上班了。';
}
await this.setOnline(session.selfId, true);
return '上班成功。';
});
cmd
.subcommand('.off', '下单')
.usage('关闭抢单')
.action(async ({ session }) => {
const online = await this.isOnline(session.selfId);
if (!online) {
return '还没有上班。';
}
await this.setOnline(session.selfId, false);
return '下班成功。';
});
cmd
.subcommand('.clear', '清除当前单')
.usage('强制清除当前单')
.action(async ({ session }) => {
const orderInfo = await this.getLastInfo(session.selfId);
if (!orderInfo) {
return '当前没有单。';
}
await this.removeLastInfo(session.selfId);
return '清除成功。';
});
} }
private async getLastInfo(selfId: string) { async setOnline(selfId: string, online: boolean) {
return this.aragami.get(PickedOrderInfo, selfId); await this.aragami.set(SelfOnline, { selfId, online });
} }
}
@DefinePlugin()
class ControlPanel extends base {
@Inject(true)
private uitlity: Utility;
@UseCommand('order', '抢单管理', { empty: true })
orderCommand() {}
private async setLastInfo(selfId: string, info: PickedOrderInfo) { private async switch(selfId: string, online: boolean, desc: string) {
return this.aragami.set(PickedOrderInfo, info, { const currentStatus = await this.uitlity.isOnline(selfId);
ttl: this.config.cooldown * 60 * 1000, if (currentStatus === online) {
}); return `我已经在${desc}了。`;
}
await this.uitlity.setOnline(selfId, online);
return `${desc}成功。`;
} }
private async removeLastInfo(selfId: string) { @UseCommand('order.on', '开启接单')
return this.aragami.del(PickedOrderInfo, selfId); async switchOn(@PutSelfId() id: string) {
return this.switch(id, true, '上班');
} }
private async isOnline(selfId: string) { @UseCommand('order.off', '关闭接单')
const online = await this.aragami.get(SelfOnline, selfId); async switchOff(@PutSelfId() id: string) {
return !!online?.online; return this.switch(id, false, '下班');
} }
private async setOnline(selfId: string, online: boolean) { @UseCommand('order.status', '查看上班状态')
await this.aragami.set(SelfOnline, { selfId, online }); async status(@PutSelfId() id: string) {
const online = await this.uitlity.isOnline(id);
return `我${online ? '上班' : '下班'}了。`;
}
}
@UsingService('aragami')
@Isolate('panel', 'receiver', 'utility')
@OnPlatform('onebot')
@DefinePlugin()
export default class OrderPicker extends StarterPlugin(OrderPickerConfig) {
@Inject()
private utility: Utility;
@UsePlugin()
loadUtility() {
return PluginDef(Utility, this.config);
}
@OnPrivate('{{masterId}}')
@UsePlugin()
loadControlPanel() {
return PluginDef(ControlPanel, this.config);
} }
@OnGuild() @OnGuild()
@UseMiddleware() @UseMiddleware()
async detectOrder(session: Session, next: Next) { async detectOrder(session: Session, next: Next) {
if (!this.config.acceptMessage(session)) return next(); if (!this.config.acceptMessage(session)) return next();
if (!(await this.isOnline(session.selfId))) return next(); if (!(await this.utility.isOnline(session.selfId))) return next();
if (await this.getLastInfo(session.selfId)) return next();
const description = segment const description = segment
.parse(session.content) .parse(session.content)
.filter((s) => s.type === 'text') .filter((s) => s.type === 'text')
.map((s) => s.data.content) .map((s) => s.data.content)
.join(''); .join('');
await this.setLastInfo(session.selfId, {
description,
time: moment().unix(),
sourceGuildId: session.guildId,
sourceUserId: session.userId,
sourceUserName:
session.author?.nickname ||
session.author?.username ||
session.username ||
session.userId,
});
await session.send(this.config.pickWord);
await session.bot.sendPrivateMessage( await session.bot.sendPrivateMessage(
this.config.masterId, this.config.masterId,
`接到单:\n${description}`, `接到${session.guildId} 的由 ${session.userId} 发布的单: ${description}`,
); );
return; await this.utility.setOnline(session.selfId, false);
return this.config.pickWord;
} }
} }
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