Merge remote-tracking branch 'origin/master'

This commit is contained in:
Him188 2020-02-26 20:43:53 +08:00
commit 85ea4563a4
3 changed files with 23 additions and 19 deletions

View File

@ -96,16 +96,17 @@ fun main() {
}
```
| 状态码 | 原因 |
| ------ | ----------------------------------- |
| 0 | 正常 |
| 1 | 错误的auth key |
| 2 | 指定的Bot不存在 |
| 3 | Session失效或不存在 |
| 4 | Session未认证(未激活) |
| 5 | 发送消息目标不存在(指定对象不存在) |
| 10 | 无操作权限指Bot没有对应操作的限权 |
| 400 | 错误的访问,如参数错误等 |
| 状态码 | 原因 |
| ------ | ---------------------------------------- |
| 0 | 正常 |
| 1 | 错误的auth key |
| 2 | 指定的Bot不存在(常发生在Session认证时) |
| 3 | Session失效或不存在 |
| 4 | Session未认证(未激活) |
| 5 | 发送消息目标不存在(指定对象不存在) |
| 10 | 无操作权限指Bot没有对应操作的限权 |
| 20 | Bot被禁言指Bot当前无法向指定群发送消息 |
| 400 | 错误的访问,如参数错误等 |
@ -904,7 +905,7 @@ Content-Typemultipart/form-data
使用此方法获取群员资料
```
[Get] /groupConfig?sessionKey=YourSessionKey&target=123456789
[Get] /memberInfo?sessionKey=YourSessionKey&target=123456789
```
#### 请求:

View File

@ -20,6 +20,7 @@ open class StateCode(val code: Int, var msg: String) : DTO {
object NotVerifySession : StateCode(4, "Session未认证")
object NoElement : StateCode(5, "指定对象不存在")
object PermissionDenied : StateCode(10, "无操作权限")
object BotMuted : StateCode(20, "Bot被禁言")
// KS bug: 主构造器中不能有非字段参数 https://github.com/Kotlin/kotlinx.serialization/issues/575
@Serializable

View File

@ -126,17 +126,19 @@ internal inline fun <reified T : VerifyDTO> Route.miraiVerify(
internal inline fun Route.intercept(crossinline blk: suspend PipelineContext<Unit, ApplicationCall>.() -> Unit) = handle {
try {
blk(this)
} catch (e: IllegalSessionException) {
call.respondStateCode(StateCode.IllegalSession)
} catch (e: NotVerifiedSessionException) {
call.respondStateCode(StateCode.NotVerifySession)
} catch (e: NoSuchBotException) {
} catch (e: NoSuchBotException) { // Bot不存在
call.respondStateCode(StateCode.NoBot)
} catch (e: NoSuchElementException) {
} catch (e: IllegalSessionException) { // Session过期
call.respondStateCode(StateCode.IllegalSession)
} catch (e: NotVerifiedSessionException) { // Session未认证
call.respondStateCode(StateCode.NotVerifySession)
} catch (e: NoSuchElementException) { // 指定对象不存在
call.respondStateCode(StateCode.NoElement)
} catch (e: PermissionDeniedException) {
} catch (e: PermissionDeniedException) { // 缺少权限
call.respondStateCode(StateCode.PermissionDenied)
} catch (e: IllegalAccessException) {
} catch (e: IllegalStateException) { // Bot被禁言
call.respondStateCode(StateCode.BotMuted)
} catch (e: IllegalAccessException) { // 错误访问
call.respondStateCode(StateCode(400, e.message), HttpStatusCode.BadRequest)
} catch (e: Throwable) {
e.printStackTrace()