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
22b26933
Commit
22b26933
authored
Apr 24, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
67d3309a
69827701
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
56 additions
and
49 deletions
+56
-49
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt
.../mirai/qqandroid/network/protocol/packet/PacketFactory.kt
+1
-1
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/NewContact.kt
...irai/qqandroid/network/protocol/packet/chat/NewContact.kt
+0
-24
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt
...ndroid/network/protocol/packet/chat/receive/MessageSvc.kt
+46
-17
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt
...c/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt
+6
-6
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.swing.jvm.kt
...ain/kotlin/net/mamoe/mirai/utils/LoginSolver.swing.jvm.kt
+3
-1
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt
...c/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt
+0
-0
No files found.
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt
View file @
22b26933
...
...
@@ -135,6 +135,7 @@ internal object KnownPacketFactories {
MessageSvc
.
PbGetMsg
,
MessageSvc
.
PushForceOffline
,
MessageSvc
.
PbSendMsg
,
MessageSvc
.
Del
,
FriendList
.
GetFriendGroupList
,
FriendList
.
GetTroopListSimplify
,
FriendList
.
GetTroopMemberList
,
...
...
@@ -152,7 +153,6 @@ internal object KnownPacketFactories {
MultiMsg
.
ApplyUp
,
NewContact
.
SystemMsgNewFriend
,
NewContact
.
SystemMsgNewGroup
,
NewContact
.
Del
,
ProfileService
.
GroupMngReq
)
...
...
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/NewContact.kt
View file @
22b26933
...
...
@@ -186,28 +186,4 @@ internal class NewContact {
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
)
=
null
}
}
internal
object
Del
:
OutgoingPacketFactory
<
Nothing
?
>(
"MessageSvc.PbDeleteMsg"
)
{
internal
operator
fun
invoke
(
client
:
QQAndroidClient
,
header
:
MsgComm
.
MsgHead
)
=
buildOutgoingUniPacket
(
client
)
{
writeProtoBuf
(
MsgSvc
.
PbDeleteMsgReq
.
serializer
(),
MsgSvc
.
PbDeleteMsgReq
(
msgItems
=
listOf
(
MsgSvc
.
PbDeleteMsgReq
.
MsgItem
(
fromUin
=
header
.
fromUin
,
toUin
=
header
.
toUin
,
// 群为84、好友为187。但是群通过其他方法删除,测试通过187也能删除群消息。
msgType
=
187
,
msgSeq
=
header
.
msgSeq
,
msgUid
=
header
.
msgUid
)
)
)
)
}
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
)
=
null
}
}
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt
View file @
22b26933
...
...
@@ -50,6 +50,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.*
import
net.mamoe.mirai.qqandroid.network.protocol.packet.chat.GroupInfoImpl
import
net.mamoe.mirai.qqandroid.network.protocol.packet.chat.NewContact
import
net.mamoe.mirai.qqandroid.network.protocol.packet.list.FriendList
import
net.mamoe.mirai.qqandroid.utils._miraiContentToString
import
net.mamoe.mirai.qqandroid.utils.io.serialization.readProtoBuf
import
net.mamoe.mirai.qqandroid.utils.io.serialization.readUniPacket
import
net.mamoe.mirai.qqandroid.utils.io.serialization.toByteArray
...
...
@@ -206,8 +207,15 @@ internal class MessageSvc {
.
filterNot
{
it
.
msg
==
null
}
.
flatMapConcat
{
it
.
msg
!!
.
asFlow
()
}
.
mapNotNull
<
MsgComm
.
Msg
,
Packet
>
{
msg
->
// 删除消息
bot
.
network
.
run
{
Del
(
bot
.
client
,
msg
.
msgHead
).
sendWithoutExpect
()
}
when
(
msg
.
msgHead
.
msgType
)
{
33
->
{
// 邀请入群
val
group
=
bot
.
getGroupByUinOrNull
(
msg
.
msgHead
.
fromUin
)
if
(
msg
.
msgHead
.
authUin
==
bot
.
id
)
{
if
(
group
!=
null
)
{
...
...
@@ -224,11 +232,25 @@ internal class MessageSvc {
if
(
group
.
members
.
contains
(
msg
.
msgHead
.
authUin
))
{
return
@
mapNotNull
null
}
return
@
mapNotNull
MemberJoinEvent
.
Invite
(
group
.
newMember
(
msg
.
getNewMemberInfo
())
.
also
{
group
.
members
.
delegate
.
addLast
(
it
)
})
}
}
34
->
{
// 主动入群
// 27 0B 60 E7 01 44 71 47 90 03 3E 03 3F A2 06 B4 B4 BD A8 D5 DF 00 30 36 42 35 35 46 45 32 45 35 36 43 45 45 44 30 38 30 35 31 41 35 42 37 36 39 35 34 45 30 46 43 43 36 36 45 44 43 46 45 43 42 39 33 41 41 44 32 32
val
group
=
bot
.
getGroupByUinOrNull
(
msg
.
msgHead
.
fromUin
)
group
?:
return
@
mapNotNull
null
if
(
group
.
members
.
contains
(
msg
.
msgHead
.
authUin
))
{
return
@
mapNotNull
null
}
return
@
mapNotNull
MemberJoinEvent
.
Active
(
group
.
newMember
(
msg
.
getNewMemberInfo
())
.
also
{
group
.
members
.
delegate
.
addLast
(
it
)
})
}
166
->
{
if
(
msg
.
msgHead
.
fromUin
==
bot
.
id
)
{
loop
@
while
(
true
)
{
val
instance
=
bot
.
client
.
getFriendSeq
()
...
...
@@ -288,32 +310,15 @@ internal class MessageSvc {
84
->
{
// 请求入群验证
bot
.
network
.
run
{
NewContact
.
SystemMsgNewGroup
(
bot
.
client
).
sendWithoutExpect
()
// 处理后要向服务器提交已阅,否则登陆时会重复收到事件
NewContact
.
Del
(
bot
.
client
,
msg
.
msgHead
).
sendWithoutExpect
()
}
return
@
mapNotNull
null
}
187
->
{
// 请求加好友验证
bot
.
network
.
run
{
NewContact
.
SystemMsgNewFriend
(
bot
.
client
).
sendWithoutExpect
()
// 处理后要向服务器提交已阅,否则登陆时会重复收到事件
NewContact
.
Del
(
bot
.
client
,
msg
.
msgHead
).
sendWithoutExpect
()
}
return
@
mapNotNull
null
}
34
->
{
// 主动入群
// 27 0B 60 E7 01 44 71 47 90 03 3E 03 3F A2 06 B4 B4 BD A8 D5 DF 00 30 36 42 35 35 46 45 32 45 35 36 43 45 45 44 30 38 30 35 31 41 35 42 37 36 39 35 34 45 30 46 43 43 36 36 45 44 43 46 45 43 42 39 33 41 41 44 32 32
val
group
=
bot
.
getGroupByUinOrNull
(
msg
.
msgHead
.
fromUin
)
group
?:
return
@
mapNotNull
null
if
(
group
.
members
.
contains
(
msg
.
msgHead
.
authUin
))
{
return
@
mapNotNull
null
}
return
@
mapNotNull
MemberJoinEvent
.
Active
(
group
.
newMember
(
msg
.
getNewMemberInfo
())
.
also
{
group
.
members
.
delegate
.
addLast
(
it
)
})
}
// 732: 27 0B 60 E7 0C 01 3E 03 3F A2 5E 90 60 E2 00 01 44 71 47 90 00 00 02 58
else
->
{
bot
.
network
.
logger
.
debug
{
"unknown PbGetMsg type ${msg.msgHead.msgType}"
}
...
...
@@ -538,5 +543,29 @@ internal class MessageSvc {
}
}
}
internal
object
Del
:
OutgoingPacketFactory
<
Nothing
?
>(
"MessageSvc.PbDeleteMsg"
)
{
internal
operator
fun
invoke
(
client
:
QQAndroidClient
,
header
:
MsgComm
.
MsgHead
)
=
buildOutgoingUniPacket
(
client
)
{
writeProtoBuf
(
MsgSvc
.
PbDeleteMsgReq
.
serializer
(),
MsgSvc
.
PbDeleteMsgReq
(
msgItems
=
listOf
(
MsgSvc
.
PbDeleteMsgReq
.
MsgItem
(
fromUin
=
header
.
fromUin
,
toUin
=
header
.
toUin
,
// 群为84、好友为187。但是群通过其他方法删除,测试通过187也能删除群消息。
msgType
=
187
,
msgSeq
=
header
.
msgSeq
,
msgUid
=
header
.
msgUid
)
)
)
)
}
override
suspend
fun
ByteReadPacket
.
decode
(
bot
:
QQAndroidBot
)
=
null
}
}
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.jvm.kt
View file @
22b26933
...
...
@@ -37,26 +37,26 @@ class DefaultLoginSolver(
val
input
:
suspend
()
->
String
,
val
overrideLogger
:
MiraiLogger
?
=
null
)
:
LoginSolver
()
{
private
val
de
gel
ate
:
LoginSolver
private
val
de
leg
ate
:
LoginSolver
init
{
if
(
Desktop
.
isDesktopSupported
())
{
de
gel
ate
=
SwingSolver
de
leg
ate
=
SwingSolver
}
else
{
de
gel
ate
=
DefaultLoginSolverImpl
(
input
,
overrideLogger
)
de
leg
ate
=
DefaultLoginSolverImpl
(
input
,
overrideLogger
)
}
}
override
suspend
fun
onSolvePicCaptcha
(
bot
:
Bot
,
data
:
ByteArray
):
String
?
{
return
de
gel
ate
.
onSolvePicCaptcha
(
bot
,
data
)
return
de
leg
ate
.
onSolvePicCaptcha
(
bot
,
data
)
}
override
suspend
fun
onSolveSliderCaptcha
(
bot
:
Bot
,
url
:
String
):
String
?
{
return
de
gel
ate
.
onSolveSliderCaptcha
(
bot
,
url
)
return
de
leg
ate
.
onSolveSliderCaptcha
(
bot
,
url
)
}
override
suspend
fun
onSolveUnsafeDeviceLoginVerify
(
bot
:
Bot
,
url
:
String
):
String
?
{
return
de
gel
ate
.
onSolveUnsafeDeviceLoginVerify
(
bot
,
url
)
return
de
leg
ate
.
onSolveUnsafeDeviceLoginVerify
(
bot
,
url
)
}
}
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/LoginSolver.swing.jvm.kt
View file @
22b26933
...
...
@@ -44,7 +44,9 @@ object SwingSolver : LoginSolver() {
需要进行账户安全认证<br>
该账户有[设备锁]/[不常用登录地点]/[不常用设备登录]的问题<br>
完成以下账号认证即可成功登录|理论本认证在mirai每个账户中最多出现1次<br>
完成后请关闭该窗口
请将该链接在QQ浏览器中打开并完成认证<br>
成功后请关闭该窗口<br>
这步操作将在后续的版本中优化
"""
.
trimIndent
()
).
last
()
JTextField
(
url
).
append
()
...
...
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/
JWTHelper
.kt
→
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/
WindowHelperJvm
.kt
View file @
22b26933
File moved
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