Commit Graph

154 Commits

Author SHA1 Message Date
Him188
40d4957837 [core/android] Implement mirai-core tests for Android target with AndroidSDK 2023-05-02 16:17:48 +01:00
Him188
c74e9d2858
[build] Make mirai-core AbstractTest public, and add dependsOnCoreJvmTest in buildSrc 2023-03-21 18:12:04 +00:00
StageGuard
78d0b4fd54
QRCode login support & Introduce new authorization factory (#2502)
* [core] process `wtlogin.trans_emp` to support qrcode login

* [core] fix `wtlogin.trans_emp` protocol

* [core] optimize QRCodeLoginProcessor logic

* [core] fix `wtlogin.trans_emp` outgoing packet

* [core] cancel login when logging a bot which is inconsistent from bot factory

* [core] ignore `flag3` check on ANDROID_WATCH & name `flag1` and `flag2`

* [core] provide default `QRCodeLoginListener` for jvm

* [core] don't catch IllegalStateException in QRCodeLoginProcessor

* [core] Use `LoginSolver.createQRCodeLoginListener()` instead of property; Rename configuration name

* [core] Code improvement

* [core] remove qrcode state lock

* [core] ignore `flag3` when command is `wtlogin.trans_emp` in packet codec

* [core] enable qrcode login for macos

* [core] remove debug property in log

* [core] reformat code

* [core] rename `TransEmpResponse` to `Response`

* [core] assert `flag3Exception` not null first

* [core] remove arg client

* [core] update qrcode login notes

* [core] set custom qrcode size

* [core] Draft BotAuthorization

* [core] make SecretsProtection mpp

* [core] BotAuthorization.byXXX

* [core] Move QRCodeLoginListener to `.auth`

* [core] Protect data of BotAccount

* [core] Add SelectorRequireReconnectException

* [core] Implementation of BotAuthorization

* Revert changes of BotConfiguration

* api dump

* [core] remove passwordMd5 in `BotAccount`

* [mock] Add new bot factory function to mock bot factory

* Delete LoginCommandTest

* [core] Improve QRCode render

* [core] Introduce UnsupportedCaptchaMethodException & UnsupportedQRCodeCaptchaException

* api dump

* update docs

* [core] update `DebugRunHelper`

* [core] add simple block for BotAuthorization

* api dump

* Rename `canDoQRLogin` to `supportsQRLogin`, and specify argument names for MiraiProtocolInternal

* Remove `phoneNumber` parameter from BotAccount

* Make `BotAccount.<init>` with String password parameter TestOnly

* Rename `InconsistentBotException` to `InconsistentBotIdException`

* Rename `QRCodeLoginListener.onStatusChanged` to `QRCodeLoginListener.onStateChanged`

* Rename `BotAuthorizationResult` to `BotAuthResult`

* Rename BotAuthComponent, move internal APIs to internal module

* Logic fixup

* doc update

* QRCodeLoginListener.qrCodeStateUpdateInterval & onIntervalLoop

* console login with BotAuthorization

* update testing

* Update mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt

* Move AuthControl outside SsoProcessor

* Redesign auth

* Add initialTicket to producerCoroutine

* Revert protocol changes of MACOS

* Fix latch death locking

* Fix CoroutineOnDemandValueScope.receiveOrNull exceptional finish

* Fix exception collecting

* Fix DefaultBotAuthorizationFactory loading

* [core] qrcode login for IPAD protocol

* Revert "[core] qrcode login for IPAD protocol"

This reverts commit c1136a8798.

---------

Co-authored-by: Karlatemp <kar@kasukusakura.com>
Co-authored-by: Him188 <Him188@mamoe.net>
2023-03-18 13:52:31 +00:00
Karlatemp
fe70187881
[core/debug] Add utils for debug running; Update docs for launch debug run 2022-11-14 00:33:07 +08:00
Him188
f0651c81c6
[core+console] Improve logging hierarchy: (#2196)
- always use factory API from mirai-core
- Terminal is still overriding standard outputs
- plugins are forbidden to override logging framework (this was allowed but not working before)
2022-08-27 18:46:16 +08:00
Him188
d27228c8c8 Rewrite MessageSerializers, register serializers in each MessageProtocol, implement for native targets 2022-07-20 00:30:16 +08:00
Him188
13dadd5a95 Implement mirai-core for native 2022-07-20 00:30:16 +08:00
Him188
ff2a8acb0c Implement multiplatform modules 2022-07-20 00:30:16 +08:00
Him188
9df7c4bda4
Update RunNoticeRecorder 2022-06-14 10:49:48 +01:00
Him188
ab3280f6b7 Add more MessageProtocolTest:
Add fragmented test

Fix MusicShareProtocol and implement sending tests for MusicShareProtocolTest

OutgoingMessagePipelineImpl: set stopWhenConsumed

Fix `currentMessageChain` not updated in `processAlso`, add strong message packets checks, add tests for converting messages failed to send at FIRST step to LongMessageInternal

Add notes for receiving ForwardMessage

Add facade parameters to `download ForwardMessage*`

Add ForwardMessageProtocolTest

Add QuoteReplyProtocolTest

Add CONTAINING_MSG for MessageDecoderContext.attributes, for information-use only

Fix MessageReceiptTest

Fix QuoteReplyProtocolTest
2022-05-25 22:39:53 +01:00
Him188
c8fb354d13 Add LongMessageProtocolTest and various improvements:
Change attributes carrying helper objects to components

Make ClockHolder open

Use originalMessage for MessageReceipt
2022-05-25 22:39:53 +01:00
Him188
3270192715 Remove SendMessageHandler and introduce OutgoingMessagePipeline. 2022-05-25 22:39:53 +01:00
Him188
e6b094031c Re-categorize MessageProtocol packages 2022-05-25 22:39:53 +01:00
Him188
94e49520d7 Move StructureToStringTransformerNew and its relevant files from jvmTest to commonTest 2022-05-25 22:39:53 +01:00
Him188
573473735c Rename RunRecorder to RunNoticeRecorder 2022-05-25 22:39:53 +01:00
Him188
a89f6aeaef Integrate new MessageProtocol with existing code 2022-05-25 22:39:53 +01:00
Him188
c118180b54 Move messages implementations other than InternalFlagOnlyMessage from .message to .message.data 2022-05-25 22:39:53 +01:00
Him188
c30b3a285a Move MessageSource implementations from .message to .message.source 2022-05-25 22:39:53 +01:00
Him188
4acd74974a Migrate deprecated usages and cleanup code 2022-04-13 13:08:14 +01:00
Him188
3844630550 Cleanup code 2022-01-06 20:07:22 +00:00
Him188
3a2663104b Rewrite and generalize ConstructorCallCodegen for multipurpose usage. 2021-12-21 18:46:25 +00:00
Him188
bf98ab7858 Move _contentToString outside mirai-core main sourceSets, and rename it to structureToString 2021-12-21 18:46:25 +00:00
Karlatemp
561d333cc7
NetInternalKit 2021-12-05 18:28:44 +08:00
Karlatemp
511d1fa4f8
Fix NetReplayHelper [no ci] 2021-11-20 17:40:58 +08:00
Karlatemp
e1ca6dd6c9
Avoid user injection 2021-11-09 18:20:56 +08:00
Karlatemp
76d23c5b0c
NetReplayHelper 2021-11-07 12:33:02 +08:00
Him188
76e2b6c64c Redesign packet recording 2021-09-01 13:55:39 +08:00
Him188
8d8aca3f1c Introduce Audio for new API, revert changes on Voice 2021-08-05 21:48:20 +08:00
Him188
dd606c3022 Improve performance of hexToBytes and simplify similar extensions 2021-07-07 15:00:28 +08:00
Him188
8647d38b34 Add MessageReceiptTest for #1371 2021-07-02 21:06:31 +08:00
Him188
a59d7208cb Add getMiraiImpl to replace direct calls of MiraiImpl.INSTANCE 2021-07-02 21:06:31 +08:00
Karlatemp
a4b62b0909
Voice serialization (#1368)
* Voice serialization

* Implement `hashCode` and `equals` for `Voice`

* Update test

* Update test

* Add note of `PttMessage.pttInternalInstance`

* Fix logic of `Voice.equals`
2021-07-02 12:10:20 +08:00
Him188
c37457cafb Cleanup and move local serializable classes to top-level 2021-06-19 18:28:21 +08:00
Him188
c93d6aa608 Add ForwardRefineTest 2021-05-30 22:51:26 +08:00
Him188
301deadbd1 Add test for #1273 2021-05-30 21:16:43 +08:00
Him188
b91bbfd2b8 Add NetworkHandlerFactory and tests for NetworkHandler 2021-05-09 00:54:48 +08:00
Him188
57eb716e31
Add inline BotFactory.newBot for Kotlin DSL. fix #1233 (#1234) 2021-05-02 13:51:32 +08:00
Him188
5dcccd1402 Introduce base class for tests AbstractTest 2021-04-20 12:47:57 +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
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
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
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
af58c163d2 - Add FileMessage.internalId hence support serialization
- Add FileMessage.Serializer
- Add FileMessage.create and IMirai.createFileMessage to construct manually
- Mark FileMessage as stable
- Move TestMiraiCode from mirai-core-api to mirai-core

fix #1082
2021-03-20 15:33:08 +08:00
Him188
4ac7d3fa9a
Support Dice (#1018)
* Add Dice public API #1012, close #1017

* Extract MarketFaceImpl to separate file

* Dice protocol impl #1012

* Dice refinement

* Add serialization support for Dice

* Add mirai code support for Dice

* Update docs/Messages.md

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

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

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

* Add dice mirai code test

Co-authored-by: sandtechnology <a1294790523@hotmail.com>
Co-authored-by: lc6a <1952511149@qq.com>
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-02-13 11:34:23 +08:00
Him188
13faff5471 Add serialization support for ShowImageFlag 2021-02-05 22:34:08 +08:00
Him188
b9e5c15bdb Add polymorphic serialization tests 2021-02-03 10:39:36 +08:00
Him188
8da048af63 Serialization support for MusicShare;
Rename MusicShare.type to kind;
Rename MusicType to MusicKind;
2021-01-24 00:39:05 +08:00
Him188
668398c597 Fix build 2021-01-07 21:11:30 +08:00
Him188
41a34bdf65 [Review] Extract MessageSerializersImpl to separate file 2021-01-06 15:55:26 +08:00