Commit Graph

3261 Commits

Author SHA1 Message Date
StageGuard
76aa8bad8d
api dump 2023-08-29 16:29:19 +08:00
StageGuard
5b0e27406c
[core] protocol api of get unsolved friend request 2023-08-29 16:20:19 +08:00
StageGuard
b449270fbc
[core] move sync controller in NewContact to specific notice processor 2023-08-29 15:10:27 +08:00
StageGuard
4acd66711a
[core] avoid potential null cast when refining OnlineShortVideoMsgInternal 2023-08-25 22:16:27 +08:00
StageGuard
5b3e508b75
feature: add ShortVideo message support (#2739)
* initial support for ShortVideo message

* dump api

* [core] upload protocol

* [core] short video upload event

* [core] doc

* [core] protocol

* [core] fix mp4 file check

* [core] extract fileName from `OnlineShortVideo` to `ShortVideo`

* [core] ShortVideo.Builder

* [core] mirai code support for `ShortVideo`

* [core] add doc for OnlineShortVideo and OfflineShortVideo

* [core] fix text

* dump api

* update `Contact.uploadShortVideo`·` doc

* [core] remove mirai code support for ShortVideo

* [core] ensure Mirai service is loaded before load other services

* [core] introduce `CombinedExternalResource` to reference multiple external resources for combined calculation.

* [core] move refine context key defined in `OnlineShortVideoMsgInternal` to `RefineContext`

* [core] remove data class

* [core] broadcast `ShortVideoUploadEvent.Failed` event

* [core] warn when cannot determine fromId

* [core] add `contentToString` and `toString` for `OnlineShortVideoMsgInternal`

* [core] optimize imports

* [core] import

* [core] revert

* [core] doc

* [core] auto close resource

* dump api

* keep consistence of param name

* update doc

* move Builder to OfflineShortVideo

* optimize RefineContext

* RefineContext.merge

* dump api

* fix test

* show more video info

* optimize constructor and builder of offline short video

* optimize thumbnail

* move thumbnail to main constructor arg

* dump api

* avoid null cast exception.

* combine format transition

* cleanup
2023-08-20 18:41:05 +08:00
Hamusuta0320
e61b058153
[core] 修复从可确定图片类型的字符串组成的 mirai code 构造的图片 type 为 UNKNOW 或与期望类型不一致 (#2761)
* [core]修复从可确定图片类型的字符串组成的mirai code构造的图片type为UNKNOW或与期望类型不一致

* [core]修复从可确定图片类型的字符串组成的mirai code构造的图片type为UNKNOW或与期望类型不一致

* [core]修复从可确定图片类型的字符串组成的mirai code构造的图片type为UNKNOW或与期望类型不一致

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

---------

Co-authored-by: Him188 <Him188@mamoe.net>
2023-08-12 14:05:38 +08:00
Karlatemp
61e8501c66
[core] Fix network initialize order; Ensure bot components when network handler allocated; fix #2740 2023-07-25 19:28:30 +08:00
Karlatemp
eab15f9125
[core/test] Disable AuthorizationReasonTest.force offline 2023-07-25 16:39:22 +08:00
Karlatemp
8a8689eb82
[core] Tried to fix AuthorizationReasonTest.force offline 2023-07-25 15:29:32 +08:00
Karlatemp
061bd28798
[build/testing] Add jupiter-api back to testing 2023-07-25 15:29:05 +08:00
赵怡然
6e7dcadcf9
[core] Fix qimei request payload (#2749)
Fix error decoder
2023-07-24 22:53:20 +08:00
Karlatemp
405f52d3ad
[core] protocol properties public view 2023-07-11 02:27:37 +08:00
Karlatemp
685fb2d3d9
[core] Handle UnsupportedOperationException on EncryptService initialize & add special signals 2023-07-03 20:37:30 +08:00
Karlatemp
96e93e670e
[core] Drop qua holding 2023-07-02 21:50:04 +08:00
Karlatemp
fa389f40bb
Refactor attachToBot to Factory 2023-07-02 21:27:03 +08:00
sandtechnology
787ee833cc
Fix extradata not passed for simple packet 2023-07-02 21:27:03 +08:00
sandtechnology
8af6c3fcf6
Remove unused EncryptServiceContext value and pass QUA
All final value only need to passed to initialize method
2023-07-02 21:27:03 +08:00
Karlatemp
19132b359b
[core] Provide CoroutineScope to service 2023-07-02 21:27:03 +08:00
Karlatemp
c080cd19f2
Merge remote-tracking branch 'origin/dev' into core/pkgsso 2023-07-02 21:27:02 +08:00
Karlatemp
ed7eca7f6b
[core] Push bot working directories to service 2023-07-02 21:27:02 +08:00
Karlatemp
804cb8b12d
[core] Service alert 2023-07-02 21:27:02 +08:00
Karlatemp
897e59123f
[core] EncryptService per bot 2023-07-02 21:27:02 +08:00
sandtechnology
006f2d1177
[core] Support simple packet signing 2023-07-02 21:21:04 +08:00
sandtechnology
8570987c34
[core] Add extraData decoding for future debugging 2023-07-02 21:21:03 +08:00
sandtechnology
760075e914
[core] Fix wrong SSOReserveField proto and packet codec
1.Body is a lambda function, so invoke it by only once
2.Fix wrong protoBuf serializer, use protocol one
3.Pass all packets to EncryptService (which packet should be sign should judge by service itself)
4.Fix wrong proto number and add missed default value, also fix proto naming
2023-07-02 21:21:02 +08:00
sandtechnology
b77a4573d1
[core] Add missed KEY_DEVICE_INFO context for qSecurityGetSign 2023-07-02 21:21:00 +08:00
sandtechnology
644eddd4d9
[core] Add qimei36 key for EncryptServiceContext 2023-07-02 21:20:59 +08:00
sandtechnology
390726ff4d
[core] Update phone and pad protocol 2023-07-02 21:20:58 +08:00
Karlatemp
7750284e53
[core] Push device to sso service & little change 2023-07-02 21:20:57 +08:00
Karlatemp
1877c95783
[core] Fix qimei holding 2023-07-02 21:20:55 +08:00
Karlatemp
bf992f877e
[core] Packet sso frame parsing debug log 2023-07-02 21:20:53 +08:00
Karlatemp
92948a484c
[core] Handle all sso packet 2023-07-02 21:20:52 +08:00
Karlatemp
5fd091eaad
[core] Fix sso packet struct 2023-07-02 21:20:31 +08:00
StageGuard
1fde79d7ad
[core] decode SsoSecureA2Access 2023-07-02 21:20:29 +08:00
StageGuard
1dacce61cd
[core] decode SsoEstablishShareKey 2023-07-02 21:20:28 +08:00
StageGuard
ff96dce35d
[core] sso reserve field and encrypt spi 2023-07-02 21:20:26 +08:00
Karlatemp
67dd471fdb
[core] change bodyType to encryptMethod 2023-07-02 21:19:24 +08:00
Him188
2eb313ba69
[core] 默认关闭进行登录验证时的内部日志; 可使用 system prop mirai.network.auth.logging=true 启用 2023-06-28 17:26:13 +01:00
cssxsh
cb3dc9f897
fix: qrcode login (#2708)
* fix: uri

* update: macos 6.8.2.21241

* add: pc (macos) t544

* add: protocol value

* add: protocol supported check

* fix: name
2023-06-26 21:30:45 +01:00
cssxsh
356f00b54b
修复禁言匿名成员 (#2711) 2023-06-25 10:48:56 +01:00
StageGuard
545e5bb310
[core] Provide isFirstLogin and getReLoginCause in BotAuthInfo (#2664)
* [core] provide `isFirstLogin` and `getReLoginCause` in `BotAuthInfo`

* [core] provide `reAuthCause` as sealed class

* [core] add test

* Update mirai-core-api/src/commonMain/kotlin/auth/BotAuthorization.kt

我觉得这个描述不太好,因为这里是 `authorize` 过程而不是 `login` 过程

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

* [core] optimize docs and rename

* import

* revert linebreak

---------

Co-authored-by: Him188 <Him188@mamoe.net>
2023-06-20 14:22:49 +01:00
Him188
8ff64d4a7f
Remove native (#2700)
* Remove native target

* Add foojay-resolver-convention

* disable windows
2023-06-16 13:40:46 +01:00
sandtechnology
3ec8e552cd
[core] Add encryption SPI & T544 support (#2566)
* Initial design for encryption SPI & T544 support

* Fix missed vararg

* Move EncryptWorkerService to internal spi

* Add useAndroid val to QQAndroidClient and rebase to the latest dev branch

* Remove docs and annotations (Throws and MiraiExperimentalApi)

* Remove unwanted changes

* Remove redundant runBlocking in tlv544

* Tweak the file annotation location

* Remove suspend modifier for doTLVEncrypt

* Disable DebuggingProperties

* Fix format

* Remove empty line

* Remove empty line again

* Use instance field directly

* Add Volatile annotation to instance

* Use atomicRef instead of field

* Use kotlin lambda for readability

* wip

* Improve EncryptService API

* Add possible values

* remove docs

* Add key BOT_PROTOCOL

---------

Co-authored-by: Him188 <Him188@mamoe.net>
2023-06-04 00:01:54 +01:00
微莹·纤绫
97f85bc8b9
[core] ForwardMessage refine by light app (#2675) 2023-05-28 19:20:12 +01:00
cssxsh
3dfe86bbe0
fix: digest message (#2672)
fix: unsigned int
2023-05-27 12:40:48 +01:00
StageGuard
60d360baad
[core] Update login protocol, deprecate DeviceInfo constructor and serializer (#2613)
* [core] update protocol

* [core] fix t106 decryption key

* [core] handle t543

* [core] revert t106

* [core] revert native test pow data

* [core] split build version and apk version name

* [core] pass time to t1 instead of time diff

* [core] remove unused t106 writer & rename param ip to ipv4 of t1 and t106

* [core] implement qimei for t545
TODO: aes and rsa crypto for nativeMain

* [core] fix base64 decode for android in rsa

* [core] fix unix timestamp parsing on native and add more tests

* [api] DeviceInfo move `androidId` to main constructor and adjust test.

* [api] do not request qimei when protocol is neither  ANDROID_PHONE nor ANDROID_PAD

* [api] implement aes crypto for native target

* [api] rsa crypto for multi-platform

* [api] crypto test

* [api] move freePointer util

* [api] openssl api compatibility

* [core] add explicit `androidId` param

* [core] remove unused `tlvCount`

* [core] optimize crypto

* [core] move Qimei to network package

* [core] move appId to protocol

* [core] lazily initialize qimeiLogger

* [core] write byte array to BIO mem

* [core] move qimei to client, add direct serializer for DeviceInfo

* [core] optimize DeviceInfoDelegateSerializer

* [core] real user-agent when requesting qimei

* [core] use `DeviceInfo.version.release`

* [core] remove unused wtlogin packet

* [core] do what constructor serializer should do

* [core] fix endless cache validation caused by not upgrading device info file.

* [core] request qimei before fast-login

* [core] tlv order

* [core] remove wrong tests and print more detail when deserialize failed.

* [core] device info upgrade for native

* [core] request qimei after validating cache

* [core] DeviceInfo compatibility

* [core] DeviceInfo test name

* [core] compatibility serializer

* [core] disable rsa crypto test on android unit test

* [core] move rsa impl to jvmBase

* action

* import

* api dump

* api dump

* revert wrong api dumps

* [core] Deprecate DeviceInfo constructor and serializer, provide `serializeToString` and `deserializeFromString` for replacement

* rerun ci

* optimize

* use serializer directly

* optimize test

* revert

* [core] CacheValidator use `DeviceInfo.serializeToString()` instead of direct serializer

* Remove `println` in `DeviceInfoManager`

* Add legacy deserialize overload for ABI compatibility

* Remove uncompleted docs for DeviceInfo

* Suppress DeviceInfo deprecation warnings for internal usages

---------

Co-authored-by: Him188 <Him188@mamoe.net>
2023-05-21 13:45:46 +01:00
Him188
dafa25d611
[core] Simplify and stabilize BaseService and AudioToSilkService (#2658)
* [core] Simplify and stabilize BaseService and AudioToSilkService

* fix

* api dump
2023-05-21 00:24:51 +01:00
Him188
b82e938b2c
[build] Fix checkAndroidApiLevel tasks when building without ADK 2023-05-06 11:20:49 +01:00
Him188
363d1f7ece
Remove module-level opt-ins, add @OptIn explicit in use-sites;
added some opt-in markers on API which should have:

- `appendMiraiCodeTo`

Made API stable (otherwise they require too heavy opt-ins):
- MiraiConsoleImplementation$ConsoleLaunchOptions
- LowLevelApi
2023-05-06 11:04:31 +01:00
Him188
bda5d54bd3 [core/auth] Wrap exception from BotAuthorization as BotAuthorizationException; add tests 2023-05-04 16:36:28 +01:00