* 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
* [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>
added some opt-in markers on API which should have:
- `appendMiraiCodeTo`
Made API stable (otherwise they require too heavy opt-ins):
- MiraiConsoleImplementation$ConsoleLaunchOptions
- LowLevelApi
[core] OnDemandChannel: Ensure channel close and emit shares same behavior
[core] OnDemandChannel: Ensure channel is closed properly when producer throws an exception
[core] OnDemandChannel: Ensure coroutine scope cancelled when producer coroutine throws exception,
also added more tests
[core] Start producer coroutine immediately on `expectMore` and yield
Improve docs for OnDemandChannel
Rename factory function `OnDemandReceiveChannel` to `OnDemandChannel` to better cover its meaning
Create deferred lazily in Producing state
Rename ProducerState to ChannelState
fix atomicfu bug receiveOrNull
Add docs (WIP, to be rebased)
[core] OnDemandChannel: Catch Throwable in `receiveOrNull` to prevent possible failures
- Generate relocated JARs with classifier `relocated`, instead of replacing the output of `:jar` task.
- Create `JvmRelocated` publications to publish relocated artifacts.
- Patch Kotlin Metadata and Maven Pom for the added publication.
- Updated deps test to be more strict
* [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
* 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