Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
3620d4bd
Commit
3620d4bd
authored
Feb 07, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
802ab47b
ce534bc7
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
32 deletions
+167
-32
mirai-api-http/README_CH.md
mirai-api-http/README_CH.md
+100
-19
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/dto/ContactDTO.kt
...rc/main/kotlin/net/mamoe/mirai/api/http/dto/ContactDTO.kt
+16
-12
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/dto/VerifyDTO.kt
...src/main/kotlin/net/mamoe/mirai/api/http/dto/VerifyDTO.kt
+23
-0
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageModule.kt
...otlin/net/mamoe/mirai/api/http/route/GroupManageModule.kt
+28
-1
No files found.
mirai-api-http/README_CH.md
View file @
3620d4bd
...
...
@@ -248,7 +248,8 @@ fun main() {
"permission": "MEMBER", // 发送者的群限权:OWNER、ADMINISTRATOR或MEMBER
"group": { // 消息发送群的信息
"id": 1234567890, // 发送群的群号
"name": "Miral Technology" // 发送群的群名称
"name": "Miral Technology", // 发送群的群名称
"permission": "MEMBER" // 发送群中,Bot的群限权
}
}
},
...
...
@@ -398,10 +399,12 @@ fun main() {
```
json5
[{
"id":123456789,
"name":"群名1"
"name":"群名1",
"permission": "MEMBER"
},{
"id":987654321,
"name":"群名2"
"name":"群名2",
"permission": "MEMBER"
}]
```
...
...
@@ -428,19 +431,21 @@ fun main() {
[{
"id":1234567890,
"memberName":"",
"permission":"MEMBER",
"group":{
"id":12345,
"name":"群名1"
},
"permission":"MEMBER"
"name":"群名1"
,
"permission": "MEMBER"
}
},{
"id":9876543210,
"memberName":"",
"permission":"OWNER",
"group":{
"id":54321,
"name":"群名2"
},
"permission":"OWNER"
"name":"群名2"
,
"permission": "MEMBER"
}
}]
```
...
...
@@ -458,8 +463,8 @@ fun main() {
```
json5
{
"sessionKey": "YourSessionKey",
"target": 123456789,
"sessionKey": "YourSessionKey",
"target": 123456789,
}
```
...
...
@@ -510,10 +515,10 @@ fun main() {
```
json5
{
"sessionKey": "YourSessionKey",
"target": 123456789,
"member": 987654321,
"time": 1800
"sessionKey": "YourSessionKey",
"target": 123456789,
"member": 987654321,
"time": 1800
}
```
...
...
@@ -545,11 +550,11 @@ fun main() {
#### 请求:
```
j
os
n5
```
j
so
n5
{
"sessionKey": "YourSessionKey",
"target": 123456789,
"member": 987654321
"sessionKey": "YourSessionKey",
"target": 123456789,
"member": 987654321
}
```
...
...
@@ -557,3 +562,79 @@ fun main() {
同群禁言群成员
### 群设置
使用此方法修改群设置(需要又相关限权)
```
[POST] /groupConfig
```
#### 请求:
```
json5
{
"sessionKey": "YourSessionKey",
"target": 123456789,
"config": {
"name": "群名称",
"announcement": "群公告",
"confessTalk": true,
"allowMemberInvite": true,
"autoApprove": true,
"anonymousChat": true
}
}
```
| 名字 | 可选 | 类型 | 举例 | 说明 |
| ----------------- | ----- | ------- | ---------------- | -------------------- |
| sessionKey | false | String | "YourSessionKey" | 你的session key |
| target | false | Long | 123456789 | 指定群的群号 |
| config | false | Object | {} | 群设置 |
| name | true | String | "Name" | 群名 |
| announcement | true | Boolean | true | 群公告 |
| confessTalk | true | Boolean | true | 是否开启坦白说 |
| allowMemberInvite | true | Boolean | true | 是否运行群员邀请 |
| autoApprove | true | Boolean | true | 是否开启自动审批入群 |
| anonymousChat | true | Boolean | true | 是否允许匿名聊天 |
#### 响应: 返回统一状态码
```
json5
{
"code": 0,
"msg": "success"
}
```
### 获取群设置
使用此方法获取群设置
```
[Get] /groupConfig?sessionKey=YourSessionKey&target=123456789
```
#### 请求:
| 名字 | 可选 | 类型 | 举例 | 说明 |
| ----------------- | ----- | ------- | ---------------- | -------------------- |
| sessionKey | false | String | YourSessionKey | 你的session key |
| target | false | Long | 123456789 | 指定群的群号 |
#### 响应
```
json5
{
"name": "群名称",
"announcement": "群公告",
"confessTalk": true,
"allowMemberInvite": true,
"autoApprove": true,
"anonymousChat": true
}
```
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/dto/ContactDTO.kt
View file @
3620d4bd
...
...
@@ -16,25 +16,29 @@ data class QQDTO(
override
val
id
:
Long
,
val
nickName
:
String
,
val
remark
:
String
)
:
ContactDTO
()
)
:
ContactDTO
()
{
// TODO: queryProfile.nickname & queryRemark.value not support now
constructor
(
qq
:
QQ
)
:
this
(
qq
.
id
,
""
,
""
)
}
// TODO: queryProfile.nickname & queryRemark.value not support now
suspend
fun
QQDTO
(
qq
:
QQ
):
QQDTO
=
QQDTO
(
qq
.
id
,
""
,
""
)
@Serializable
data class
MemberDTO
(
override
val
id
:
Long
,
val
memberName
:
String
=
""
,
val
group
:
GroupDTO
,
val
permission
:
MemberPermission
)
:
ContactDTO
()
fun
MemberDTO
(
member
:
Member
,
name
:
String
=
""
):
MemberDTO
=
MemberDTO
(
member
.
id
,
name
,
GroupDTO
(
member
.
group
),
member
.
permission
)
val
permission
:
MemberPermission
,
val
group
:
GroupDTO
)
:
ContactDTO
()
{
constructor
(
member
:
Member
,
name
:
String
=
""
)
:
this
(
member
.
id
,
name
,
member
.
permission
,
GroupDTO
(
member
.
group
)
)
}
@Serializable
data class
GroupDTO
(
override
val
id
:
Long
,
val
name
:
String
)
:
ContactDTO
()
fun
GroupDTO
(
group
:
Group
):
GroupDTO
=
GroupDTO
(
group
.
id
,
group
.
name
)
\ No newline at end of file
val
name
:
String
,
val
permission
:
MemberPermission
)
:
ContactDTO
()
{
constructor
(
group
:
Group
)
:
this
(
group
.
id
,
group
.
name
,
group
.
botPermission
)
}
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/dto/VerifyDTO.kt
View file @
3620d4bd
...
...
@@ -3,6 +3,7 @@ package net.mamoe.mirai.api.http.dto
import
kotlinx.serialization.Serializable
import
kotlinx.serialization.Transient
import
net.mamoe.mirai.api.http.AuthedSession
import
net.mamoe.mirai.contact.Group
@Serializable
abstract
class
VerifyDTO
:
DTO
{
...
...
@@ -37,6 +38,28 @@ data class MuteDTO(
val
time
:
Int
=
0
)
:
VerifyDTO
()
@Serializable
data class
GroupConfigDTO
(
override
val
sessionKey
:
String
,
val
target
:
Long
,
val
config
:
GroupInfoDTO
)
:
VerifyDTO
()
@Serializable
data class
GroupInfoDTO
(
val
name
:
String
?
=
null
,
val
announcement
:
String
?
=
null
,
val
confessTalk
:
Boolean
?
=
null
,
val
allowMemberInvite
:
Boolean
?
=
null
,
val
autoApprove
:
Boolean
?
=
null
,
val
anonymousChat
:
Boolean
?
=
null
)
:
DTO
{
constructor
(
group
:
Group
)
:
this
(
group
.
name
,
group
.
announcement
,
group
.
confessTalk
,
group
.
allowMemberInvite
,
group
.
autoApprove
,
group
.
anonymousChat
)
}
@Serializable
open
class
StateCode
(
val
code
:
Int
,
var
msg
:
String
)
{
object
Success
:
StateCode
(
0
,
"success"
)
// 成功
...
...
mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/route/GroupManageModule.kt
View file @
3620d4bd
...
...
@@ -3,6 +3,8 @@ package net.mamoe.mirai.api.http.route
import
io.ktor.application.Application
import
io.ktor.application.call
import
io.ktor.routing.routing
import
net.mamoe.mirai.api.http.dto.GroupConfigDTO
import
net.mamoe.mirai.api.http.dto.GroupInfoDTO
import
net.mamoe.mirai.api.http.dto.MuteDTO
import
net.mamoe.mirai.api.http.dto.StateCode
...
...
@@ -10,6 +12,9 @@ import net.mamoe.mirai.api.http.dto.StateCode
fun
Application
.
groupManageModule
()
{
routing
{
/**
* 禁言
*/
miraiVerify
<
MuteDTO
>(
"/muteAll"
)
{
it
.
session
.
bot
.
getGroup
(
it
.
target
).
muteAll
=
true
call
.
respondStateCode
(
StateCode
.
Success
)
...
...
@@ -21,7 +26,7 @@ fun Application.groupManageModule() {
}
miraiVerify
<
MuteDTO
>(
"/mute"
)
{
when
(
it
.
session
.
bot
.
getGroup
(
it
.
target
)
.
members
[
it
.
member
].
mute
(
it
.
time
))
{
when
(
it
.
session
.
bot
.
getGroup
(
it
.
target
)[
it
.
member
].
mute
(
it
.
time
))
{
true
->
call
.
respondStateCode
(
StateCode
.
Success
)
else
->
throw
PermissionDeniedException
}
...
...
@@ -34,5 +39,27 @@ fun Application.groupManageModule() {
}
}
/**
* 群设置(需要相关权限)
*/
miraiGet
(
"/groupConfig"
)
{
val
group
=
it
.
bot
.
getGroup
(
paramOrNull
(
"target"
))
call
.
respondDTO
(
GroupInfoDTO
(
group
))
}
miraiVerify
<
GroupConfigDTO
>(
"/groupConfig"
)
{
dto
->
val
group
=
dto
.
session
.
bot
.
getGroup
(
dto
.
target
)
with
(
dto
.
config
)
{
name
?.
let
{
group
.
name
=
it
}
announcement
?.
let
{
group
.
announcement
=
it
}
confessTalk
?.
let
{
group
.
confessTalk
=
it
}
allowMemberInvite
?.
let
{
group
.
allowMemberInvite
=
it
}
// TODO: 待core接口实现设置可改
// autoApprove?.let { group.autoApprove = it }
// anonymousChat?.let { group.anonymousChat = it }
}
call
.
respondStateCode
(
StateCode
.
Success
)
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment