Commit Graph

40 Commits

Author SHA1 Message Date
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
cssxsh
2cffb7a4a4
[core] feat: RockPaperScissors (#2220)
* [core] feat: RockPaperScissors

Co-authored-by: Karlatemp <kar@kasukusakura.com>

* docs update

* rename `eliminate` to `eliminates`

Co-authored-by: Karlatemp <kar@kasukusakura.com>
2023-01-03 10:00:32 +08:00
Him188
eab14647e1
[core] Fix ArrayIndexOutOfBoundsException when loading device infos generated by < 2.9.0. Fix #2280 2022-10-19 16:19:34 +01:00
Him188
21c4a5ba04 Use kotlinx-coroutines-test 2022-07-20 00:30:16 +08:00
Him188
732e61e37d Ensure for all MessageChain subclasses, equals, hashCode give consistent results. 2022-07-20 00:30:16 +08:00
Him188
ff2a8acb0c Implement multiplatform modules 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
d6a56f1052 Remove generic type on MessageVisitorUnit 2022-05-25 22:39:53 +01:00
Him188
0c708c8197 Redesign MessageChain hierarchy: Add LinearMessageChainImpl and CombinedMessage 2022-05-25 22:39:53 +01:00
Him188
b40b681f81 Deprecate EmptyMessageChain in favor of emptyMessageChain() 2022-05-25 22:39:53 +01:00
Him188
7d3971259d
Review deprecation for 2.10. close #1742 (#1774) 2022-01-14 18:26:44 +00:00
Him188
8b99cc45fb Implement multi versioned DeviceInfo, implement DeviceInfo v2 which stores properties as String and hex strings instead of ByteArrays. 2021-11-29 14:33:20 +00:00
Him188
d5d0b35806 Add DeviceInfo.random(Random) and implement equals and hashCode for DeviceInfo 2021-11-29 14:33:20 +00:00
Him188
bd041e43d1
Support Image.isUploaded, (#1671)
* Support `Image.isUploaded`,
add member `Image.md5`,
add `Image.calculateImageMd5ByImageId`,
close #1401

* Update docs
2021-11-16 10:50:17 +00:00
Karlatemp
456903628e
Make MessageChain truly read-only; fix #1676 2021-11-15 23:22:52 +08:00
Him188
5170f217ad Add test for compatibility on legacy logging overrides 2021-08-11 15:24:32 +08:00
Him188
dcd8a1aee0 Fix static initialization of DefaultFactory 2021-08-11 15:24:32 +08:00
Him188
5950e9e1e8 Improve logging: use Log4j internally and support markers
Migrate usages of `MiraiLogger.create` to new API
apiDump for new logging
2021-08-11 15:24:32 +08:00
Him188
baf1ca618e Improve performance of MessageChain.get, MessageChain.contains. Add relevant tests. 2021-06-25 07:57:52 +08:00
Him188
415f133cbc Fix Flow<Message>.toMessageChain 2021-06-20 01:36:32 +08:00
Him188
bcdff1336b
Kotlin 1.5 and dependencies updates (#1246)
* Kotlin 1.5 and dependencies updates

* Update mirai-console ref

* Use Kotlin 1.5.10

* 2.7-M1-dev-3

* Update console ref
2021-05-27 14:39:13 +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
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
Karlatemp
9bb3ae20ef
MiraiCode of MusicShare (#1044)
* Improve MiraiCode parsing

* MiraiCode of MusicShare
2021-02-23 23:00:32 +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
b41a742ece Rename toMiraiCode to serializeToMiraiCode;
Rename parseFromMiraiCode to deserializeFromMiraiCode
2021-01-11 22:19:27 +08:00
Him188
9c995284f0 [Review] MiraiCode:
- Add object MiraiCode for mirai code utilities
- Internal optimizations
2021-01-08 09:20:24 +08:00
Him188
668398c597 Fix build 2021-01-07 21:11:30 +08:00
Him188
16e4bde07e Stable MessageKey 2020-12-27 23:04:16 +08:00
Him188
bfda72e58f
ExternalResource (#754)
* ExternalResource fundamentals:
- Introduce ExternalResource
- Migrate functions
- Move utilities to mirai-core-utils

* Fix build

* Fix filename and misc improvements

* Close file on ExternalResource.close;
Reset filePointer to 0 on stream close

* Rearrange image extensions

* Fix tests

* Fix build

* toExternalResource: formatName = null by default

* Reduce unnecessary continuations

* Fix ExternalResourceImplByFileWithMd5.inputStream

* ExternalResource: Remove BufferedImage support

* Don't close stream on image upload;
Unified closing behaviorImprove;
Improve FileCacheStrategy;

* Fix createImageDataPacketSequence closing

* Fix image upload, change size to long

* Fix docs

* Rename SendImageUtilsJvmKt to SendResourceUtilsJvmKt

* Run BIO appropriately

* Postpone file detection on formatName getter

* Fix SendResourceUtilsJvmKt JvmName

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2020-12-26 17:36:00 +08:00
Karlatemp
2f903cef9e
Mirai code (#768)
* Mirai Code

* cleanup code

* mirai code of MarketFace
2020-12-26 15:55:13 +08:00
sandtechnology
23114b7e81
Support New QQ System Faces (#720)
* Update QQ original faces name

* Add missed channel check

* Change data struct to array

* Revert "Add missed channel check"

This reverts commit e30f97dc

* Remove author

* Make internal

* Update Face implement

* Support decode and encode new system faces

* Correct the magic number

* Lazy name val

* Fix naming inconsistent

* Revert "Fix naming inconsistent"

This reverts commit b7db927f

* Fix naming inconsistent again
2020-12-20 20:59:34 +08:00
Him188
95013a6ca2 Change Duration.asHumanReadable to Duration.toHumanReadableString for clearer semantics 2020-12-17 09:21:59 +08:00
Karlatemp
49aecee7bc
Fix ConstrainSingleTest 2020-12-11 19:08:18 +08:00
Him188
6b792e3ba6 Simplify MessageChain implementations 2020-12-11 14:53:47 +08:00
Him188
7d5063653a Polymorphic message key, #693 2020-12-10 12:36:17 +08:00
Him188
f6e9f306d4 Redesign Message.Key. #693.
- `ConstrainSingle` now extends a more general type `SingleMessage` instead of `MessageMetadata` for extendability
- `Message.Key` moved to `ConstrainSingle.Key`
- Delete `companion object Key`s from duplicable messages
2020-12-05 12:57:34 +08:00
Him188
efdf68a553 Fix tests 2020-11-01 23:57:37 +08:00
Him188
1e7aaaec48 Rearrange protocol implementations 2020-11-01 15:07:32 +08:00
Him188
a9d4d14576 Rearrange module structure:
- Rename mirai-core to mirai-core-api
- Rename mirai-core-qqandroid to mirai-core
- Rename package net.mamoe.mirai.qqandroid to net.mamoe.mirai.internal
- Delete old android targets
- Configure default packages correctly
- Update licenses
2020-10-03 12:42:13 +08:00