Skip to content

Commit 0795e42

Browse files
committed
http api event dto model
1 parent c9f94c9 commit 0795e42

File tree

2 files changed

+125
-3
lines changed

2 files changed

+125
-3
lines changed

mirai-api-http/src/main/kotlin/net/mamoe/mirai/api/http/data/common/DTO.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package net.mamoe.mirai.api.http.data.common
22

3-
import kotlinx.serialization.*
4-
import kotlinx.serialization.json.Json
5-
import kotlinx.serialization.modules.SerializersModule
3+
import kotlinx.serialization.Serializable
4+
import kotlinx.serialization.Transient
65
import net.mamoe.mirai.api.http.AuthedSession
76

87
interface DTO
@@ -16,3 +15,8 @@ abstract class VerifyDTO : DTO {
1615
@Transient
1716
lateinit var session: AuthedSession // 反序列化验证成功后传入
1817
}
18+
19+
@Serializable
20+
open class EventDTO : DTO
21+
22+
object IgnoreEventDTO : EventDTO()
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package net.mamoe.mirai.api.http.data.common
2+
3+
import kotlinx.serialization.SerialName
4+
import kotlinx.serialization.Serializable
5+
import net.mamoe.mirai.contact.MemberPermission
6+
import net.mamoe.mirai.event.events.BotEvent
7+
import net.mamoe.mirai.event.events.*
8+
import net.mamoe.mirai.message.MessagePacket
9+
import net.mamoe.mirai.utils.MiraiExperimentalAPI
10+
11+
@Serializable
12+
open class BotEventDTO : EventDTO()
13+
14+
@UseExperimental(MiraiExperimentalAPI::class)
15+
fun BotEvent.toDTO() = when(this) {
16+
is MessagePacket<*, *> -> toDTO()
17+
else -> when(this) {
18+
is BotOnlineEvent -> BotOnlineEventDTO(bot.uin)
19+
is BotOfflineEvent.Active -> BotOfflineEventActiveDTO(bot.uin)
20+
is BotOfflineEvent.Force -> BotOfflineEventForceDTO(bot.uin, title, message)
21+
is BotOfflineEvent.Dropped -> BotOfflineEventDroppedDTO(bot.uin)
22+
is BotReloginEvent -> BotReloginEventDTO(bot.uin)
23+
// is MessageSendEvent.GroupMessageSendEvent -> {}
24+
// is MessageSendEvent.FriendMessageSendEvent -> {}
25+
// is BeforeImageUploadEvent -> {}
26+
// is ImageUploadEvent.Succeed -> {}
27+
is BotGroupPermissionChangeEvent -> BotGroupPermissionChangeEventDTO(origin, new, GroupDTO(group))
28+
is BotMuteEvent -> BotMuteEventDTO(durationSeconds, MemberDTO(operator))
29+
is BotUnmuteEvent -> BotUnmuteEventDTO(MemberDTO(operator))
30+
is BotJoinGroupEvent -> BotJoinGroupEventDTO(GroupDTO(group))
31+
// is GroupSettingChangeEvent<*> -> {} // 不知道会改什么
32+
is GroupNameChangeEvent -> GroupNameChangeEventDTO(origin, new, GroupDTO(group), isByBot)
33+
is GroupEntranceAnnouncementChangeEvent -> GroupEntranceAnnouncementChangeEventDTO(origin, new, GroupDTO(group), operator?.let(::MemberDTO))
34+
is GroupMuteAllEvent -> GroupMuteAllEventDTO(origin, new, GroupDTO(group), operator?.let(::MemberDTO))
35+
is GroupAllowAnonymousChatEvent -> GroupAllowAnonymousChatEventDTO(origin, new, GroupDTO(group), operator?.let(::MemberDTO))
36+
is GroupAllowConfessTalkEvent -> GroupAllowConfessTalkEventDTO(origin, new, GroupDTO(group), isByBot)
37+
is GroupAllowMemberInviteEvent -> GroupAllowMemberInviteEventDTO(origin, new, GroupDTO(group), operator?.let(::MemberDTO))
38+
is MemberJoinEvent -> MemberJoinEventDTO(MemberDTO(member))
39+
is MemberLeaveEvent.Kick -> MemberLeaveEventKickDTO(MemberDTO(member), operator?.let(::MemberDTO))
40+
is MemberLeaveEvent.Quit -> MemberLeaveEventQuitDTO(MemberDTO(member))
41+
is MemberCardChangeEvent -> MemberCardChangeEventDTO(origin, new, GroupDTO(group), operator?.let(::MemberDTO))
42+
is MemberSpecialTitleChangeEvent -> MemberSpecialTitleChangeEventDTO(origin, new, MemberDTO(member))
43+
is MemberPermissionChangeEvent -> MemberPermissionChangeEventDTO(origin, new, MemberDTO(member))
44+
is MemberMuteEvent -> MemberMuteEventDTO(durationSeconds, MemberDTO(member), operator?.let(::MemberDTO))
45+
is MemberUnmuteEvent -> MemberUnmuteEventDTO(MemberDTO(member), operator?.let(::MemberDTO))
46+
else -> IgnoreEventDTO
47+
}
48+
}
49+
50+
@Serializable
51+
@SerialName("BotOnlineEvent")
52+
data class BotOnlineEventDTO(val qq: Long) : BotEventDTO()
53+
@Serializable
54+
@SerialName("BotOfflineEventActive")
55+
data class BotOfflineEventActiveDTO(val qq: Long) : BotEventDTO()
56+
@Serializable
57+
@SerialName("BotOfflineEventForce")
58+
data class BotOfflineEventForceDTO(val qq: Long, val title: String, val message: String) : BotEventDTO()
59+
@Serializable
60+
@SerialName("BotOfflineEventDropped")
61+
data class BotOfflineEventDroppedDTO(val qq: Long) : BotEventDTO()
62+
@Serializable
63+
@SerialName("BotReloginEvent")
64+
data class BotReloginEventDTO(val qq: Long) : BotEventDTO()
65+
@Serializable
66+
@SerialName("BotGroupPermissionChangeEvent")
67+
data class BotGroupPermissionChangeEventDTO(val origin: MemberPermission, val new: MemberPermission, val groupDTO: GroupDTO) : BotEventDTO()
68+
@Serializable
69+
@SerialName("BotMuteEvent")
70+
data class BotMuteEventDTO(val durationSeconds: Int, val operator: MemberDTO) : BotEventDTO()
71+
@Serializable
72+
@SerialName("BotUnmuteEvent")
73+
data class BotUnmuteEventDTO(val operator: MemberDTO) : BotEventDTO()
74+
@Serializable
75+
@SerialName("BotJoinGroupEvent")
76+
data class BotJoinGroupEventDTO(val group: GroupDTO) : BotEventDTO()
77+
@Serializable
78+
@SerialName("GroupNameChangeEvent")
79+
data class GroupNameChangeEventDTO(val origin: String, val new: String, val group: GroupDTO, val isByBot: Boolean) : BotEventDTO()
80+
@Serializable
81+
@SerialName("GroupEntranceAnnouncementChangeEvent")
82+
data class GroupEntranceAnnouncementChangeEventDTO(val origin: String, val new: String, val group: GroupDTO, val operator: MemberDTO?) : BotEventDTO()
83+
@Serializable
84+
@SerialName("GroupMuteAllEvent")
85+
data class GroupMuteAllEventDTO(val origin: Boolean, val new: Boolean, val group: GroupDTO, val operator: MemberDTO?) : BotEventDTO()
86+
@Serializable
87+
@SerialName("GroupAllowAnonymousChatEvent")
88+
data class GroupAllowAnonymousChatEventDTO(val origin: Boolean, val new: Boolean, val group: GroupDTO, val operator: MemberDTO?) : BotEventDTO()
89+
@Serializable
90+
@SerialName("GroupAllowConfessTalkEvent")
91+
data class GroupAllowConfessTalkEventDTO(val origin: Boolean, val new: Boolean, val group: GroupDTO, val isByBot: Boolean) : BotEventDTO()
92+
@Serializable
93+
@SerialName("GroupAllowMemberInviteEvent")
94+
data class GroupAllowMemberInviteEventDTO(val origin: Boolean, val new: Boolean, val group: GroupDTO, val operator: MemberDTO?) : BotEventDTO()
95+
@Serializable
96+
@SerialName("MemberJoinEvent")
97+
data class MemberJoinEventDTO(val member: MemberDTO) : BotEventDTO()
98+
@Serializable
99+
@SerialName("MemberLeaveEventKick")
100+
data class MemberLeaveEventKickDTO(val member: MemberDTO, val operator: MemberDTO?) : BotEventDTO()
101+
@Serializable
102+
@SerialName("MemberLeaveEventQuit")
103+
data class MemberLeaveEventQuitDTO(val member: MemberDTO) : BotEventDTO()
104+
@Serializable
105+
@SerialName("MemberCardChangeEvent")
106+
data class MemberCardChangeEventDTO(val origin: String, val new: String, val group: GroupDTO, val operator: MemberDTO?) : BotEventDTO()
107+
@Serializable
108+
@SerialName("MemberSpecialTitleChangeEvent")
109+
data class MemberSpecialTitleChangeEventDTO(val origin: String, val new: String, val member: MemberDTO) : BotEventDTO()
110+
@Serializable
111+
@SerialName("MemberPermissionChangeEvent")
112+
data class MemberPermissionChangeEventDTO(val origin: MemberPermission, val new: MemberPermission, val member: MemberDTO) : BotEventDTO()
113+
@Serializable
114+
@SerialName("MemberMuteEvent")
115+
data class MemberMuteEventDTO(val durationSeconds: Int, val member: MemberDTO, val operator: MemberDTO?) : BotEventDTO()
116+
@Serializable
117+
@SerialName("MemberUnmuteEvent")
118+
data class MemberUnmuteEventDTO(val member: MemberDTO, val operator: MemberDTO?) : BotEventDTO()

0 commit comments

Comments
 (0)