Commit ef418c37 authored by nanahira's avatar nanahira

total rework

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