Commit Graph

2587 Commits

Author SHA1 Message Date
Him188
eb80a4836b Remove all unstable kotlin.Duration usages 2021-05-09 00:54:48 +08:00
Him188
a7a4879d05 Improve logging 2021-05-09 00:54:48 +08:00
Him188
5fa54114c1 Fix sso and event logging 2021-05-09 00:54:48 +08:00
Him188
971685a2b0 Fix state resume 2021-05-09 00:54:48 +08:00
Him188
95d634233c Close bot if first login failed 2021-05-09 00:54:48 +08:00
Him188
35a6d12dde Test: network scope closed on bot close 2021-05-09 00:54:48 +08:00
Him188
062492c546 Test: NettyEndlessReconnectionTest 2021-05-09 00:54:48 +08:00
Him188
e584bc8ee8 Test: state tests 2021-05-09 00:54:48 +08:00
Him188
8db8e2fb03 Implement lifecycle management for network 2021-05-09 00:54:48 +08:00
Him188
f9ddf74d8e Extract sync logic 2021-05-09 00:54:48 +08:00
Him188
076cd4997d BotOfflineEventMonitor 2021-05-09 00:54:48 +08:00
Him188
3806d7ce78 fix componentName and smartToString 2021-05-09 00:54:48 +08:00
Him188
c35c2c97c8 CombinedStorageTest 2021-05-09 00:54:48 +08:00
Him188
b91bbfd2b8 Add NetworkHandlerFactory and tests for NetworkHandler 2021-05-09 00:54:48 +08:00
Him188
4f77abca87 Components misc implementations including (ABI changes):
- ComponentStorage and its impls
- ContactCacheService
- ContactUpdater
- HeartbeatProcessor
- SsoProcessor
- QQABot
2021-05-09 00:54:48 +08:00
Him188
7f2f1e9759 Rearrange network tests 2021-05-09 00:54:48 +08:00
Him188
9286d2124e Add utils for tests 2021-05-09 00:54:48 +08:00
Him188
035085cf45 Remove state CONNECTION_LOST 2021-05-09 00:54:48 +08:00
Him188
84fa460b32 BotOnlineEvent, BotReloginEvent, BotOfflineEvent 2021-05-09 00:54:48 +08:00
Him188
d70475b8ba Do not resume state while it is already closed 2021-05-09 00:54:48 +08:00
Him188
0e1b9da5e4 Fix test KeepAliveNetworkHandlerSelectorTest 2021-05-09 00:54:48 +08:00
Him188
79112bc98d Fix LongMessageInternal missing parameter (due to merge) 2021-05-09 00:54:48 +08:00
Him188
35b80dc700 Processors 2021-05-09 00:54:48 +08:00
Him188
dd1b7404ea IDEA removed my import 2021-05-09 00:54:48 +08:00
Him188
9db3a5ef4f Rearrange packages for component system 2021-05-09 00:54:48 +08:00
Him188
0443fe4576 Prefer generified outgoing packets in all factories 2021-05-09 00:54:48 +08:00
Him188
82ad953b2b Continuing implement states for NetworkHandler 2021-05-09 00:54:48 +08:00
Him188
03e12eb287 fix build 2021-05-09 00:54:48 +08:00
Him188
9ac0a8715c Integrate ServerList into component system 2021-05-09 00:54:48 +08:00
Him188
3ec8a94096 ContactUpdater and ContactCacheService 2021-05-09 00:54:48 +08:00
Him188
51c1450202 ComponentStorage 2021-05-09 00:54:48 +08:00
Him188
05b2bfe059 Rearrange packages 2021-05-09 00:54:48 +08:00
Him188
70551167ba States and connection impl 2021-05-09 00:54:48 +08:00
Him188
1fef89cf1c Add state observer 2021-05-09 00:54:48 +08:00
Him188
8786f12d5d Add NetworkHandler.isOk to avoid state == OK 2021-05-09 00:54:48 +08:00
Him188
4446479e80 Make QQAndroidClient lighter 2021-05-09 00:54:48 +08:00
Him188
f2b236341a Decouple SSO login processor 2021-05-09 00:54:48 +08:00
Him188
997ad1eb63 Rearrange QQAndroidBot 2021-05-09 00:54:48 +08:00
Him188
1d053bd1bd Extract netty utils 2021-05-09 00:54:48 +08:00
Him188
90f5e27b5f Add AbstractKeepAliveNetworkHandlerSelectorTest 2021-05-09 00:54:48 +08:00
Him188
382c351e08 Implement NetworkHandlerSelector, serverList, and implement them into Bot 2021-05-09 00:54:48 +08:00
Him188
ff80434d2d Migrate network logger and old sendWithoutExpect and sendAndExpect 2021-05-09 00:54:48 +08:00
Him188
840dd19dd0 Move EMPTY_BYTE_ARRAY to mirai-core-utils 2021-05-09 00:54:48 +08:00
Him188
097a478999 Relocates netty files to correct packages 2021-05-09 00:54:48 +08:00
Karlatemp
5f0b432220 NettyTestUnit 2021-05-09 00:54:48 +08:00
Him188
e293195391 Set state to StateClosed appropriately and update docs 2021-05-09 00:54:48 +08:00
Him188
a143340141 Buildscript: Fix test artifacts included in main sourceset 2021-05-09 00:54:48 +08:00
Him188
d01f71ff8b Remove rubbish; fix build; add todos 2021-05-09 00:54:48 +08:00
Him188
b844efb072 New network: framework infrastructure 2021-05-09 00:54:48 +08:00
sandtechnology
028bfa483c
Introduce MemberNick class and correct nameCard decoding, Fix #1151 (#1231)
* Introduce MemberNick class and correct nameCard decoding, Fix #1151

* Update comment for better understanding

Co-authored-by: Him188 <Him188@mamoe.net>

* Change var name in method for better understanding

Co-authored-by: Him188 <Him188@mamoe.net>

* Fix build

Co-authored-by: Him188 <Him188@mamoe.net>
2021-05-06 17:54:52 +08:00
sandtechnology
e459c76f92
OnlinePush.SidTicketExpired: Refresh token and register online (#1242)
* OnlinePush.SidTicketExpired: Refresh token and register online

* Also update key map

* Update package name to internal

Co-authored-by: Him188 <Him188@mamoe.net>

* Fix build

Co-authored-by: Him188 <Him188@mamoe.net>
2021-05-05 00:26:10 +08:00
Him188
6854252c77 Old network: re-init client on BotOfflineEvent.Force. #1205 for 2.7-M1 2021-05-04 12:47:27 +08:00
Him188
84d444843d Old network: delete account secrets on BotOfflineEvent.Force. #1205 for 2.7-M1 2021-05-04 12:47:22 +08:00
Him188
57eb716e31
Add inline BotFactory.newBot for Kotlin DSL. fix #1233 (#1234) 2021-05-02 13:51:32 +08:00
sandtechnology
0baaf9d587
Correct the seq logic, fix #1094 (#1232) 2021-05-02 13:51:21 +08:00
sandtechnology
db4c41f84a
Rework seq system (#1230)
* Rework seq system, should help #1209

* Use non-blocking (CAS) implement

* Making next seq code more clear for reading

* Fix mistake
2021-05-02 13:50:24 +08:00
Him188
70dc0a4da6
Remove kotlin.time.Duration usages (#1215)
* Remove kotlin.Duration usages

* Fix build

* update submodule console ref
2021-04-27 11:49:30 +08:00
sandtechnology
4e070baf34
Fix duplicate register packet (#1214) 2021-04-25 11:37:12 +08:00
Karlatemp
d3dc756a50
Drop empty UnsupportedMessage; fix #1210 2021-04-24 10:18:06 +08:00
Him188
5dcccd1402 Introduce base class for tests AbstractTest 2021-04-20 12:47:57 +08:00
Him188
6d58fb5514 Ensure fast login succeed, fix #1199 2021-04-18 14:37:16 +08:00
Karlatemp
28a8b8303a
Support receive nested ForwardMessages (#1196)
* Support receive nested ForwardMessages

* Tests
2021-04-17 16:09:32 +08:00
Karlatemp
0c93aeb425
Add RefineContext for refining (#1195)
* Add RefineContext for refining

* Add RefineContext argument

* Fix build
2021-04-17 11:45:02 +08:00
Karlatemp
83fa78b50d
Find nick from source; fix #1137 2021-04-17 09:28:11 +08:00
Hoshino Tented
1bf1e3686f
添加管理员修改功能 (#1178)
* add modifyAdmin

* 修复赋予相同权限时不会抛错并且仍然广播事件的 bug

* fix test failed

* fix test failed AGAIN

* fix myself

* 是这样吗

* i am so sorry :(

* fix fixed bug
2021-04-16 08:33:07 +08:00
Him188
f3d3130f2d Support login cache and login without password. close #1158 2021-04-10 18:46:39 +08:00
Karlatemp
509c0d3d06
Fix mute all not working; Fix #1181 2021-04-09 19:19:03 +08:00
Him188
8d3a4fbf5b
Deprecate RemoteFile.moveTo(String) for ambiguous behavior (#1180) 2021-04-09 18:33:12 +08:00
Him188
ce95d8fdce Fix RemoteFile.resolveById, fix #1177 2021-04-09 07:47:51 +08:00
Him188
d4ee81c79a Fix potential memory leak with struct ByteReadPacket 2021-04-08 22:42:24 +08:00
Him188
951ddc3138 Declare type explicitly for IDE inference issue 2021-04-08 18:07:21 +08:00
Him188
45c6adf956 Declare type explicitly for IDE inference issue 2021-04-08 13:15:24 +08:00
Him188
344c54531d Declare type explicitly for IDE inference issue 2021-04-08 13:13:23 +08:00
Him188
7be14f809c Fix build warnings 2021-04-08 12:44:58 +08:00
Him188
7feeaee1ca
Refining Messages without suspension (#1167)
* Introduce `RefinableMessage.tryRefine` to refine without suspension.

* Extract `RefinableMessage` to separate file

* Always use `Bot` on `List<MsgComm.Msg>.toMessageChain`

* Introduce `MessageRefiner` and ensure MessageChain refined after transformation. Fix #1156, fix #1157

* Add basic tests

* Refine forward message contents

* Refine long message contents

* Move refinement from message internals to MiraiImpl public APIs

* Comment out unused `toMessageChainOffline`

* refinement tests part

* refinement tests part

* Full tests and minor internal improv.s

* Fix tests

* Fix compile
2021-04-08 11:59:16 +08:00
Hoshino Tented
a085ab26c8
fix #1155 (#1170)
* fix #1155

* fix unmute

* add durationSeconds check for mute

* fix stupid code

* fix me
2021-04-07 17:34:45 +08:00
sandtechnology
5d1395a78c
Fix key refresh failed when refresh again and update dumped data (#1169)
* Fix key refresh failed when logged with fast login

* Update dumped data and remove outdated t511 list

* Fix key refresh again

* Fix naming and support multi bot case

* Remove useless code

* Fix key refresh again, remove useless default value (ksid)
2021-04-07 12:12:13 +08:00
Him188
bb5c85965a Simple test: MockBot 2021-04-07 00:59:08 +08:00
Karlatemp
b227f719a2
Fix kt compiler errors (#1159)
* Fix kt compiler errors

* Revert "Fix compiler bug, fix #1136"

This reverts commit 39f6c168

* Fix log style

Co-authored-by: Him188 <Him188@mamoe.net>
2021-04-05 22:41:26 +08:00
AdoptOSS
21e8852e0f
buildscript: fix task not found errors when android sdk not available (#1161)
* buildscript: fix task not found errors when android sdk not available

* fix: this shadowed by run

* cleanup: code style

* improve: avoid breaking index map
2021-04-05 22:35:38 +08:00
Him188
7521e6d17f
Rename RichMessageOrigin to MessageOrigin (#1116)
* Rename `RichMessageOrigin` to `MessageOrigin`

* apiDump

* Change `MessageOrigin.origin` parameter type from `RichMessage` to `SingleMessage`;
Rename `RichMessageKind` to `MessageOriginKind`

* Make MessageOriginKind serializable and update docs

* Ensure binary compatibility with <2.6 and provide migration helpers

* apiDump
2021-04-04 00:31:33 +08:00
Him188
39f6c1680c Fix compiler bug, fix #1136 2021-04-04 00:00:32 +08:00
Him188
caf9eb06ad Fix package name of StrangerImpl 2021-04-03 23:17:00 +08:00
Him188
50e60cc4fe Use system property mirai.unknown.image.type.logging to enable logging on unknown image type, helps #1111 2021-04-03 23:07:41 +08:00
Him188
cccdb3cdf2
Update docs for messages (#1142)
* Update docs for messages

* Update docs for messages

* Update docs for messages

* Update docs for messages

* Update docs/Messages.md

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>

* Update mirai-core-api/src/commonMain/kotlin/message/data/Message.kt

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>

* Update docs for messages

* Update docs for messages

* Revert inappropriate changes

* Fix doc

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-04-03 22:39:55 +08:00
Him188
ea1f43b9c5
Fast login (#1154)
* wtlogin10

* Fast login Packet Implement (#1125)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Refresh Token when exchanging and solve connection dropping issue (#1128)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update (#1131)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update

* Add login lock

* Add login lock

* Remove key refresh

* Remove heartbeat period override

* Login: Update tlv and solve constant connection dropping issue (#1150)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update

* Update tlv, add tlv11d and tlv11a decoding

* Add stat heartbeat, solve constant connection dropping issue

* Update apidump for new configuration

* Add comment for statHeartbeatPeriodMillis

* Change old naming

* Add since version

Co-authored-by: Him188 <Him188@mamoe.net>

Co-authored-by: sandtechnology <20417547+sandtechnology@users.noreply.github.com>
2021-04-03 22:31:14 +08:00
Karlatemp
f6fd4de14b
Postpone error reporting in parsing in NewContact (#1147)
* Add `ParseErrorPacket` for postpone error report

* Continue to parse even if an error occurs
2021-04-03 22:17:49 +08:00
Karlatemp
6e914f6941
Fix forward display (#1148) 2021-04-03 22:12:14 +08:00
Him188
3f807353b3 Remove UNSUPPORTED_MERGED_MESSAGE_PLAIN, fix #1119 2021-03-30 12:16:08 +08:00
Him188
cea4d23d7f Create OtherClientInfo from known information, fix #1109 2021-03-30 12:14:20 +08:00
Him188
fc70bb9ed8 Remove type definition to help compatibility with Kotlin 1.5 2021-03-29 23:59:03 +08:00
sandtechnology
70bbfcf786
Correct group syncing logic again, Fix #1120 (#1123) 2021-03-28 22:48:38 +08:00
Him188
de170325c9 Merge branch 'fix_1118_empty_listFiles' into dev 2021-03-28 19:32:44 +08:00
Him188
174ca300d6 Fix empty listFiles for child directories, fix #1118 2021-03-27 15:39:46 +08:00
Him188
430c2c59ad
Support UnsupportedMessage (#1112)
* Support UnsupportedMessage

* Fix serialize

* `UnsupportedMessage.contentToString`: use `struct.contentHashCode()`

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-03-26 23:54:17 +08:00
Him188
c47535289a
Merge pull request #1115 from mamoe/transform_special_messages
Move Dice to MarketFace conversion from `SendMessageHandler.transformSpecialMessages`...
2021-03-26 20:36:21 +08:00
Him188
8d25025d24 Support decode Dice sent by TIM PC clients 2021-03-26 20:34:32 +08:00
Him188
efc6eda312 Move Dice to MarketFace conversion from SendMessageHandler.transformSpecialMessages to MessageChain.toRichTextElems to enable conversions for ForwardMessage 2021-03-26 19:54:11 +08:00
Karlatemp
a5e85f443e
Try fix forward message display (#1052)
fix https://github.com/mamoe/mirai/issues/1052#issuecomment-805600071
2021-03-25 00:01:04 +08:00
Him188
9f52a26fbd Fix FileMessage mirai code 2021-03-20 22:31:12 +08:00