Commit Graph

169 Commits

Author SHA1 Message Date
Him188
427c37e649
[build] Update to Kotlin 1.8.10 2023-03-19 03:18:34 +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
ArgonarioD
4f0f733f4d
修复JvmPlugin无法通过自己的classLoader以getResource的方法获取全局依赖的class文件 (#2536)
* [console] Fixed classLoaders of JvmPlugin cannot getResource(classes of global dependencies), fix #2535

* [core/utils/jvm] new fun: addAll(Enumeration)

* [console] modify DynLibClassLoader.tryFastOrStrictResolveResource to tryFastOrStrictResolveResources

* [console] remove allClassesAsResources field

* [console] add var to control whether class files of mirai dependencies could be load as resources

* [console/integration-test] modify loader test

* [console] dump new apis

* [console] rename JvmPluginClasspath.openMiraiDependenciesClassResource and standardize its KDoc

* [console] modify the KDoc of JvmPluginClasspath.shouldResolveConsoleSystemResource

* [console/integration-test] improve resources loading test cases

* [console/integration-test] modify assert to assertTrue
2023-03-12 22:37:47 +08:00
Eritque arcus
3ff2737b3c
Add fallback solution for Services (#2511)
* add fallback solution for Services

* use castUp

* throw exception when prop doesn't match

* cannot use castUp

* improve codes

* improve name of functions

* add both

* add override

* solve conflicts

* [core] Move MiraiCoreServices to common

* [core] Improvement

* update var names

* update func names

---------

Co-authored-by: Karlatemp <kar@kasukusakura.com>
2023-03-11 18:12:56 +08:00
cssxsh
9f36eff070
[core] Support loading service from classloaders other than current (#2428)
* fix: load service, close #2268 #2427

* fix: check empty
2023-02-17 09:57:12 +00:00
sandtechnology
cc7f35519e
Update login protocol (#2433)
* Update login protocol
Still need testing

* Turn off debug option and make t547 null when failed

* Fix wrong convert method and improve tips

* Remove unused part and improve tips

* Fix typo

* Inline resultStatus for performance

* Rename pow to PoW, the name should be "Proof of Work"

* Add shadow and deps-test for kt-bignum

* Try to fix deps-test

* Fix deps-test again
2023-01-18 17:41:21 +08:00
Karlatemp
c77ed79b12
[core] Encode html entities for forward message; fix #2241 2022-12-11 22:26:06 +08:00
Him188
f24ca9628f
[core] Optimize array expansions 2022-11-02 19:29:02 +00:00
微莹·纤绫
4abb3e3703
[core] Introduce Flow<T>.toStream() for simply implement Streamable (#2259)
* [core] Introduce `Flow<T>.toStream()` for simply implement `Streamable`

* Drop `unintercepted` support

* fix ci

* update test
2022-10-31 13:09:58 +00:00
Him188
564a7ce8f8
[core] Review atomic calls and enable atomicfu compiler. Close #2315 2022-10-29 13:04:37 +01:00
Him188
1f8524fb04
Fix all compiler warnings throughout the project 2022-10-21 17:00:37 +01:00
Him188
4d80e0e6d3
[core] Improve documentation on processor pipeline system. 2022-10-12 14:38:17 +01:00
Him188
2da0a2d6d3
[core] Fix relevant uses of Closeable 2022-09-23 23:01:39 +08:00
Him188
9122dddfb7
[core] Add net.mamoe.mirai.utils.Closeable for MPP use 2022-09-23 21:38:06 +08:00
微莹·纤绫
2db9804cf2
Mock Testing Framework (#1521)
Co-authored-by: Eritque arcus <1930893235@qq.com>
Co-authored-by: Him188 <Him188@mamoe.net>
2022-09-10 12:49:13 +08:00
Him188
f4db93745d
[core] Move structureToString from .core.utils.debug to .core.utils
due to compiler bug.
2022-08-27 01:21:14 +08:00
Him188
965ab57aaa
[core] Move StructureToStringTransformer to mirai-core-utils, and use legacy implementation as fallback. close #2097. 2022-08-26 18:42:56 +08:00
Him188
fb3f39e328 [core] Improve NetworkHandler exception handling and optimize exception logging:
- close #2175
- close #2148
- Fix `Throwable.findCause`
- Rename `mirai.network.handle.selector.logging` to `mirai.network.handler.selector.logging`
- Hide rather long and complicated `CancellationException`s, use `mirai.network.handler.cancellation.trace` to re-enable it
2022-08-26 15:20:04 +08:00
Him188
8dcc93089c [core] Optimize ExceptionCollector, flatten suppressed exceptions and add them only to the last exception 2022-08-26 15:20:04 +08:00
Him188
5358b3e4d0
[core] slightly improve performance of toUHexString 2022-08-25 13:20:09 +08:00
Him188
eeb10cc89a
[core] Update docs for implementations 2022-07-31 15:44:48 +08:00
Him188
f962618bee Fix compiler warnings 2022-07-20 00:30:16 +08:00
Him188
21c4a5ba04 Use kotlinx-coroutines-test 2022-07-20 00:30:16 +08:00
Him188
4c6b879873 Upgrade to Ktor 2.0.2, use CIO engine for linux targets; Remove ktor-client-okhttp from mirai-core-api jvmBaseMain
Use Input.readAllText instead of Input.readText, because readText only reads one buffer.
#2084
2022-07-20 00:30:16 +08:00
Him188
21d883b630 Introduce higher performance compression/decompression methods for different purposes for common 2022-07-20 00:30:16 +08:00
Him188
4f61417af6 Use Zlib for compression/decompression on native 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
ce87400998 Use ktor-io to replace kotlinx-io 2022-07-20 00:30:16 +08:00
Him188
0571be1a55 Commonize projects: mirai-core series, and mirai-console-compiler-annotations 2022-07-20 00:30:16 +08:00
Him188
d96641dedb Configure HMPP project structure 2022-07-20 00:30:16 +08: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
c1a7dd9843 Add some capability for delegation for TypeSafeMap 2022-05-25 22:39:53 +01:00
Him188
90deacb692 Fix imageType sent from macOS client, fix #1111 2022-05-25 22:39:53 +01:00
Him188
089b403a06 Allow nulls in TypeSafeMap 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
c47779c726 MessageProtocol implementations 2022-05-25 22:39:53 +01:00
Him188
a9516b401b Generalize chineseLength to mirai-core-utils 2022-05-25 22:39:53 +01:00
Him188
3be16c4644 Code cleanup. Remove duplicated internal utilities. 2022-04-25 14:15:29 +01:00
Him188
e7dcf676fc Handle leading length for ByteArray.loadAs, fix deserialization problem with RequestPush. Fix #1991, #1899. 2022-04-25 14:06:31 +01:00
Him188
499f7beb1d Add DeprecatedSinceMirai.internalSince 2022-04-13 12:34:30 +01:00
Him188
e78074c1a1 TypeSafeMap: allow using supertypes in get with default value 2022-04-06 15:50:37 +01:00
Karlatemp
cf39a628a2
Drop emoji when rendering at; fix #1938 2022-03-27 21:49:04 +08:00
Him188
603e29d739 Add Either.flatMapNull 2022-03-16 15:27:11 +00:00
Him188
351357a8e0 Add ExceptionCollector.compressExceptions 2022-03-16 15:27:10 +00:00
Him188
7d3971259d
Review deprecation for 2.10. close #1742 (#1774) 2022-01-14 18:26:44 +00:00
Him188
662fbf8d1e Deprecate experimental CoroutineScopeUtils 2022-01-10 23:27:23 +00:00
Karlatemp
6d16d77dad Secrets Protection 2022-01-03 17:38:34 +00:00
Him188
ecc4425463 Move KClass.createInstance to mirai-core-utils and optimize TestPointPluginImpl.<init> 2021-12-23 01:37:11 +00:00
Him188
0711b5ae2e Add TypeSafeMap.toMutableTypeSafeMap 2021-12-21 03:32:27 +00:00