Commit Graph

772 Commits

Author SHA1 Message Date
Him188
92ab2bf50b Add @since to Image.width etc 2021-11-10 22:49:42 +00:00
Karlatemp
31399efe40
AbstractExternalResource (#1637)
* AbstractExternalResource

* typo

* make `ResourceCleanCallback` `fun interface`

* custom display name

* update logic

* Update docs

* Update ExternalResource.kt
2021-11-10 14:39:32 +00:00
Him188
ef2d22c956 Ensure thread safe 2021-11-09 22:53:57 +00:00
Him188
7da6a50284 Use system-default locale for logging 2021-11-09 22:53:57 +00:00
Karlatemp
fa364b4b45
Reject sending FileMessage (#1657)
* Reject sending `FileMessage`

* Update docs

* Update mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFile.kt

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

Co-authored-by: Him188 <Him188@mamoe.net>
2021-11-07 10:55:02 +00:00
Karlatemp
c56708ca7f
Fix environment check 2021-11-06 23:11:26 +08:00
Him188
99f461ae00 Update docs for AudioSupported.uploadAudio: add ref to mirai-silk-converter 2021-11-06 15:00:51 +00:00
Him188
e3dcaf6654 Remove use of deprecated MiraiLogger.TopLevel 2021-11-06 14:44:58 +00:00
Him188
bb9c9d7aa4 Remove use of deprecated RemoteFile 2021-11-06 14:36:35 +00:00
Him188
9e151e7026
Redesign group files (#1589)
* Prototype new `RemoteFiles` design

* add `@JavaFriendlyAPI`

* remove `quietly`

* move `moveTo` to `AbsoluteFile`

* Add java friendly apis

* Remove `condoneMissing`

* Change `renameTo`

* Extract interface declarations

* update docs

* Add `AbsoluteFileFolder.exists`

* Add common ProgressionCallback

* Implement `RemoteFiles` and relevant `Absolute*`

* Implement `refresh` and `refreshed`

* Update docs

* Forbid blank paths

* Update docs

* Deprecate `RemoteFile` and implement `FileMessage.toAbsoluteFile`

* Change corresponding properties on operations

* Deprecate more old declarations

* Update docs

* Add check for permission

* Allow relative paths and fix upload

* fix absolutePath

* doc update

* api dump

* `Result<R>.onSuccessCatching`

* return null when file not exists

* Fix file uploading

* Fix folder.absolutePath

* add `resolveFileById`

* Implement toString

* Add `nameWithoutExtension` and `extension`

* Add `deep` to resolveFileById

* Implement permission check

* Remove notes

* Fix `resolveFileById`

* Fix `extension`

* add docs

* Improve docs

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-10-30 16:05:57 +01:00
Him188
767475f9ab Deprecate IMirai.calculateGroupUinByGroupCode, and migrate usages to getUin. Close #1479 2021-10-30 13:44:49 +01:00
Karlatemp
e61fbbcc70
Fix getRawGroupHonorListData, getRawGroupActiveData (#1616) 2021-10-28 13:44:00 +01:00
Karlatemp
07d5a6ca7d
Chain calling of ExternalResource.toExternalResource(); fix #1588 2021-10-09 21:49:49 +08:00
Karlatemp
b31f7b1ba7
AudioToSilkService (#1591)
* AudioToSilkService

* Update mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt

Co-authored-by: Eritque arcus <1930893235@qq.com>

* `@since`; `@Experimental`

Co-authored-by: Eritque arcus <1930893235@qq.com>
2021-10-09 09:21:58 +01:00
Karlatemp
0b2a759028
Image.isEmoji() (#1596)
- Also remove image regex inlining
2021-10-05 22:01:14 +08:00
lliiooll
d3425a7566
Add mac and ipad protocol from miraiGo (#1523)
* add mac and ipad protocol

* Update BotConfiguration.kt

* Update MiraiProtocolInternal.kt

* api

* Update mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt

Co-authored-by: Him188 <Him188@mamoe.net>
2021-10-01 22:38:04 +01:00
Him188
ceeb4d7b5f Make JavaFriendlyAPI public 2021-10-01 16:15:22 +01:00
sandtechnology
00ecf86094
Clarify specialTitle docs and support to detect specialTitle changes (#1531) 2021-09-27 15:39:11 +01:00
sandtechnology
c09f8ab192
Support for switching anonymousChat settings (#1522)
* Support for switching anonymousChat settings

* apiDump

* Applied suggestion from him188
2021-09-27 15:39:01 +01:00
Him188
ef301cc6e5
支持获取消息记录 (漫游消息) (#1520)
* Support roaming messages for friend

* Remove `RoamingMessage.getMessage`

* Remove `RoamingAuthenticator`

* Mark `@JavaFriendlyAPI`

* apiDump

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-09-18 19:37:13 +08:00
sandtechnology
4ce57f52a8
Add height, width, size and imageType attribute to Image class (#1548)
* Add height, width, size and imageType attribute to Image class
Close #1543 #1204 #1032

* Let ImageType enum code before the `Internals`, Also add @JvmStatic and OrNull version for match method

* Use runBIO and throws annotation for getImageInfo

* Add .kt suffix for MPP imagesImpl

* Return empty imageInfo for unsupported images

* Fix wrong file name

* apiDump

* Renaming MPP file instead of adding JvmName annotation

* Optimize readability and only use BIO at call-site

* Fix bug for detecting image type

* Detecting javax module for java 9+

* Clean up

* Disable some image types which not supported

* Use cross platform code to read images, readd support for apng

* Fix bug in reading image

* apiDump

* Fix bug in image reading and write unite test

* Fix wording

* Remove webp support and throws IllegalArgumentException for unsupported format

* Remove WEBP enum type

* Add unit test for unsupported image and correct comments

* Fix buffer input stream error when reading images

* Applying suggestions and fix jpg reading

* Add complete SOF decoding for jpg and clean up

* Caching jpg sof byte ranges

* Save `values()` as IMAGE_TYPE_ENUM_LIST for preventing clone operation

* Remove duplicated it
2021-09-16 04:38:59 +08:00
Him188
75d0b66121 Disable EventLaunchUndispatchedTest 2021-09-12 22:52:27 +08:00
Him188
63fc45edd6 Try fix EventLaunchUndispatchedTest 2021-09-12 22:39:44 +08:00
Him188
062b8766a2 Raise deprecation levels:
- RichMessageOrigin
- SingleMessage.Serializer
- ForceOfflineException
- MessageSubscribersBuilder.sentByTemp
- subscribeTempMessages
- TempMessageSubscribersBuilder
- TempMessageEvent
- TempMessagePostSendEvent
- TempMessagePreSendEvent

close #1296
2021-09-12 20:57:04 +08:00
Karlatemp
89dddcf843
Fix the logger name of ExternalResourceLeakObserver is null 2021-09-12 11:16:08 +08:00
sandtechnology
394012ec3e
Support group disband kind decoding (#1525)
* Support group disband kind decoding

* Update mirai-core-api/src/commonMain/kotlin/event/events/group.kt

* Add useless comment for triggering build

Co-authored-by: Him188 <Him188@mamoe.net>
2021-09-11 14:29:39 +08:00
Karlatemp
b451dfaf96
Fix MessageChainBuilder.clear not clearing caches; fix #1538 2021-09-10 12:57:01 +08:00
Karlatemp
16ad3bc042
Fix MessageChainBuilder.copy not copying caches 2021-09-10 12:57:00 +08:00
Karlatemp
7fe402695e Hide event logs that are too verbose
Co-authored-by: Him188 <Him188@mamoe.net>
2021-09-05 00:06:37 +08:00
Him188
238ec52eea Adapt for server time difference, let MessageSource.time refer to server time. Fixes 1519 2021-09-04 21:31:10 +08:00
Him188
4d0afc27dc Introduce auto close for ExternalResource 2021-09-01 20:05:05 +08:00
Him188
25ddb41544 Deprecate EmptyMessageChain.serializer() for stability concerns 2021-09-01 19:29:56 +08:00
Him188
66999aadaf Migrate to Kotlin 1.5.30 and review dependencies:
- Remove redundant atomicfu-common
- Do not expose kotlinx-io and atomicfu
2021-09-01 18:52:36 +08:00
Karlatemp
8271fa9a82
Ensure SimpleListenerHost.handleException is called; Cancel registered listeners in SimpleListenerHost when it's completed (#1490)
* Improve `SimpleListenerHost` registration

* Comments
2021-09-01 14:00:42 +08:00
Him188
4b4e7e1dcc Fix MemberJoinEvent processing and add MemberJoinTest 2021-09-01 13:55:39 +08:00
Him188
56cbe2d8a2 Redesign notice handling and introduce NoticeProcessorPipeline part 2
Do not broadcast StrangerAddedEvent if added twice, fix stranger scope not closed

Do not add new instance if there is already one

Close and remove corresponding stranger instance if there is new friend.
2021-09-01 13:55:39 +08:00
Him188
dc54679acb Redesign notice handling and introduce NoticeProcessorPipeline 2021-09-01 13:55:39 +08:00
Him188
03a18724fe Add out variance to generic type of ContactList 2021-09-01 13:55:39 +08:00
Karlatemp
66c209381d
Improve event log 2021-08-26 22:28:33 +08:00
Him188
c3258eaa3b Update docs for NormalMember 2021-08-25 13:58:34 +08:00
Him188
a34c11f239 Make classes sealed: MessageEvent, UserMessageEvent, GroupAwareMessageEvent 2021-08-13 16:21:46 +08:00
Him188
13484c7a7a Remove redundant TODOs and unused classes 2021-08-13 16:21:46 +08:00
Karlatemp
8a607eddaf
Add RequestEventData for saving request events (#1309)
* Add `RequestEventData` for saving request events

* typo

* Remove `data`; Add `@SerialName`
2021-08-12 14:18:25 +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
9189affdf9 Do not wrap original MiraiLogger as MarkedMiraiLogger if it is not the type 2021-08-11 15:24:32 +08:00
Him188
317b3cc0c7 Fix factory loader for MiraiLogger.Factory 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
8d8aca3f1c Introduce Audio for new API, revert changes on Voice 2021-08-05 21:48:20 +08:00
Him188
12b96aedc9 Make hints in SwingSolver.onSolveUnsafeDeviceLoginVerify more clear 2021-08-04 12:30:15 +08:00
Him188
927da16245 Add subscribeUserMessages 2021-08-04 12:29:33 +08:00
RainChan
bd61c1e80d
支持在踢出群成员时选择是否拉黑 (#1457)
* 支持在踢出群成员时选择是否拉黑

* fix binary-compatibility for kick NormalMember

* change doc
2021-08-03 22:20:53 +08:00
RainChan
0c6115dcf3
fix docs for subscribeOnce 2021-08-03 19:37:29 +08:00
Him188
03a6596553 Remove redundant overrides for contacts 2021-08-02 14:25:23 +08:00
Him188
a14531f696 Update KDoc for contacts 2021-08-02 14:11:05 +08:00
Him188
978228afc1 Remove duplicated serializers for UnsupportedMessage 2021-07-31 17:50:55 +08:00
Him188
0ebf656c20 Improve performance of MessageChainBuilder.add and .addAll 2021-07-31 17:50:40 +08:00
Karlatemp
b423430b74
Deprecate GroupSettings.entranceAnnouncement; close #1399, close #1398 2021-07-15 22:29:51 +08:00
Him188
dd606c3022 Improve performance of hexToBytes and simplify similar extensions 2021-07-07 15:00:28 +08:00
Him188
eaa8f20208 Mark UserProfile with NotStableForInheritance 2021-07-07 13:47:45 +08:00
Him188
e389594c47 Update docs on MemberPermission 2021-07-07 13:47:28 +08:00
Him188
a0baa65193 Announcement API: Refine naming of properties:
- pinned -> isPinned
- popup -> showPopup
- needConfirm -> requireConfirmation

- readMemberNumber -> confirmedMembersCount
- publishTime -> publicationTime
- isAllRead -> allConfirmed
2021-07-06 19:45:51 +08:00
Him188
881f713be2 Update docs of announcement 2021-07-06 19:12:45 +08:00
Him188
9d9b9ce7e2 Change AnnouncementImage's width and height to Int 2021-07-06 19:12:45 +08:00
Him188
6145b3ef47 Remove inline to make compiler happy :) 2021-07-06 19:12:45 +08:00
Him188
c588b5ce76 Add permission requirement to docs on
some Announcement API
2021-07-06 19:12:45 +08:00
Him188
d08c6b81a8 Add simplified one-line API for publishing a single announcement 2021-07-06 19:12:45 +08:00
Him188
b98fcdd2e5 Add default argument to OfflineAnnouncement 2021-07-06 19:12:45 +08:00
Him188
f7e2391d96 Add contracts for eligible Announcement API 2021-07-06 19:12:45 +08:00
Him188
d10cd270e8 Make AnnouncementParameters better for Java 2021-07-06 19:12:45 +08:00
Him188
5c89645056 Add a stable factory-method for AnnouncementImage 2021-07-06 19:12:45 +08:00
Him188
b239c57679 Re-order parameters of AnnouncementImage 2021-07-06 19:12:45 +08:00
Him188
858766d6b5 Make OfflineAnnouncement.create synthetic 2021-07-06 19:12:45 +08:00
Him188
1abc65fb16 Update docs for Announcement API 2021-07-06 19:12:45 +08:00
Him188
47192f3ee3 Make Announcements.asStream not suspend 2021-07-06 19:12:45 +08:00
Him188
9f1343c02e Generate equals, hashCode and toString for AnnouncementParameters abd AnnouncementImage 2021-07-06 19:12:45 +08:00
Him188
d2e35772d0 Add constructor-like functions for Kotlin users 2021-07-06 19:12:45 +08:00
Him188
1abfcf4317 Add OfflineAnnouncement.serializer 2021-07-06 19:12:45 +08:00
Him188
b319e2bc5c Remove parameter title of Announcement 2021-07-06 19:12:45 +08:00
Him188
4a2b510a70 Remove announcements' low-level API and bundle them into AnnouncementProtocol, improve code style and maintainability 2021-07-06 19:12:45 +08:00
Him188
f5ce64ba4f Redesign Announcement API
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-07-06 19:12:45 +08:00
Him188
194d34d309 Remove meaningless @LazyProperty 2021-07-06 19:12:10 +08:00
Him188
d6c4b5456f Remove inappropriate weak references 2021-07-06 19:12:10 +08:00
Him188
be3c873f4f
Face.toString: use contentToString() for better readability (#1382) 2021-07-06 16:07:41 +08:00
Karlatemp
a4f0bbfe80
Fix document of RandomAccessFile.toExternalResource() 2021-07-05 18:16:53 +08:00
Him188
69f2d24c22 Fix build 2021-07-05 18:02:01 +08:00
Him188
c4fd79ef22 Fix doc on ExternalResource 2021-07-05 18:00:57 +08:00
Him188
8fdce4dc98 Update docs on ExternalResource for auto release, and categorise declarations 2021-07-05 17:20:57 +08:00
Him188
abc2bfcb3e
Add @NotStableForInheritance and apply it to suitable classes (#1385)
* Add `@NotStableForInheritance` and apply it to suitable classes

* apiDump

* Fix import

* fix
2021-07-05 12:50:00 +08:00
Him188
7722a5a0b0 Move KSerializer.map to mirai-core-utils 2021-07-04 17:56:23 +08:00
Karlatemp
4c810ee3ee
ExternalResourceLeakObserver (#1383)
* ExternalResourceLeakObserver

* Avoid exceptions of user-defined run-when-close actions

* Fix build

* Release references

* Move `ExternalResourceLeakObserver` to mirai-core-api

* Make internal

* Make `close()` thread-safely

* typo

* Don't track `ExternalResource` creation stack by default

* Update mirai-core-api/src/commonMain/kotlin/internal/utils/ExternalResourceLeakObserver.kt

Co-authored-by: Him188 <Him188@mamoe.net>
2021-07-03 22:05:12 +08:00
Him188
ceac90ed19 Minor update for doc of BotJoinGroupEvent.Active 2021-07-02 22:11:38 +08:00
Him188
91a9e63877 Do light refine after constructing MessageReceipt, fix #1371 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
adc39a93b5 Update copyright 2021-07-02 00:39:10 +08:00
Him188
b9eb654a51 Reformat and cleanup code 2021-07-02 00:39:10 +08:00
Him188
6eff4bdf40 Add EVENT_LAUNCH_UNDISPATCHED to allow to launch coroutines for event listeners in a UNDISPATCHED start mode 2021-06-29 22:43:02 +08:00
Him188
3d0fba2d8f Fix EventChannel.filter, allow blocking calls correctly 2021-06-29 22:21:58 +08:00
Karlatemp
06c005e068
Update document link of captcha solving 2021-06-26 19:31:30 +08:00
Karlatemp
a20833bb2a
Enable slider captcha for built-in login solvers 2021-06-26 19:31:28 +08:00
Karlatemp
eb5c7414d7
Add hashCode and equals for Image, close #1302 2021-06-26 16:29:40 +08:00
Karlatemp
ae54a5fb41
Private voice support (#1310)
* Support voice for private messaging

* typo

* Add extension functions for `uploadAsVoice`; Update KDocs

* Update KDoc

* Update error message

* Fix `C2CPttStoreBDH` error

* Deprecated `ExternalResource.uploadAsVoice(Contact): Voice`

* Update mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt

* apiDump

Co-authored-by: Him188 <Him188@mamoe.net>
2021-06-26 10:02:23 +08:00
Him188
baf1ca618e Improve performance of MessageChain.get, MessageChain.contains. Add relevant tests. 2021-06-25 07:57:52 +08:00
Noire
b8de3f77ff
GroupAnnoucement (#1141)
* Add more comment about GroupAnnouncement.kt

* Edit comment about GroupAnnouncement.kt
Provide experimental api

* Api Dump

* After review

* Change to interface and API dump

* More change

* More change

* More more change

* Some change

* api dump

* Fix name

* Redesign Announcement public api

* Edit comment about GroupAnnouncement.kt
Provide experimental api

* After review

* Change to interface and API dump

* More change

* Modify to extension fun

* Fix sendAnnouncement and change place

* Change Group.deleteAnnouncement to group companion

* fix publish

* Api dump

* Reformat code

* Add `@since 2.7`

* Fix build

Co-authored-by: Him188 <Him188@mamoe.net>
2021-06-24 00:59:53 +08:00
sandtechnology
76e57d4aae
Update system face (#1260)
* Update system face

* Update api dump

* Update api dump for android

* Update system face which updated today

* Update api dump

* Add new system face

* Update apidump
2021-06-23 15:00:06 +08:00
zhou2008
7ed9f280d7
Update ForwardMessage.kt (#1275) 2021-06-23 14:57:48 +08:00
Him188
415f133cbc Fix Flow<Message>.toMessageChain 2021-06-20 01:36:32 +08:00
Him188
8840ba9e6f Remove contract in MiraiLogger 2021-06-20 00:21:49 +08:00
Him188
c37457cafb Cleanup and move local serializable classes to top-level 2021-06-19 18:28:21 +08:00
Him188
a38f24cbe5 Redesign connection maintenance mechanism:
Reconnection is directed by `BotOfflineEvent`.

### Event Broadcasting

- PacketFactory `MessageSvcPushForceOffline` closes network with `ForceOfflineException`.
 - `network.close(cause)` pass the cause to state observer from `QQAndroidBot.stateObserverChain`, the observer broadcasts as follows:
   - Nothing if `cause` is `ForceOfflineException` or `BotClosedByEvent`(which is broadcast by user)
   - `BotOfflineEvent.Dropped` if cause is NetworkException and is recoverable(which is from Netty handlers)
   - `BotOfflineEvent.Force` if cause is `ForceOfflineException` is from the factory mentioned above.
   - `BotOfflineEvent.Active` otherwise(any other unexpected exceptions considered as an error)

### Deciding whether to reconnect

User can listen and change `BotOfflineEvent.reconnect` to decide. Default values are determined by `BotConfiguration`.

### Event listening

- Component `BotOfflineEventMonitor` listens `BotOfflineEvent`, logs the event for users, and launches a coroutine to do `network.resumeConnection` to notify the selector to renew an instance.
- `BotOnlineWatchdog` in `SelectorNetworkHandler` is removed.
- Selector now handles `maxAttempts` correctly in such a way that `awaitResumeInstance` does not throw exception until maximum attempts reached.
- On every attempt, new exceptions are logged to provide debugging information, and further duplications are ignored.
2021-06-16 16:58:20 +08:00
AdoptOSS
7732014cbd
fix: do trimming properly in startsWith & endsWith, #1282 (#1314)
Co-authored-by: ArcticLampyrid <arcticlampyrid@outlook.com>
2021-06-08 15:42:37 +08:00
Him188
a9489567d0
Clearify docs for ExternalResource and RemoteFile (#1248)
* Update code docs for ExternalResource emphasising its properties

* Update code docs for ExternalResource emphasising its representative file location

* Update mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt

* Update mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt

* Clarify docs
2021-06-08 11:23:09 +08:00
Him188
6b442b251f Introduce AbstractEventTest 2021-06-07 18:56:33 +08:00
Him188
fc96ba96dd Add _EventBroadcast to allow tests to overrode implementation of Event.broadcast 2021-06-07 18:29:15 +08:00
Him188
9619338d5b Catch and forward event broadcasting to EventDispatcher 2021-06-07 18:18:07 +08:00
Him188
02681428c9 Review and migrate deprecated calls 2021-06-07 12:57:01 +08:00
Karlatemp
ef439f1dea
Fix API check 2021-06-07 12:33:31 +08:00
Him188
38d0b124f2 Fix docs on BotOfflineEvent.Force 2021-06-06 13:58:46 +08:00
Him188
c03155af6d
Review docs and improve readability (#1291)
* Review docs and improve readability

* Update docs/Bots.md

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

* Update docs/Bots.md

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

* Update docs/Bots.md

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

* Fix doc

* Fix doc

* Clarify AnonymousMember and NormalMember

* Fix typo

* Add language type

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-06-02 20:29:36 +08:00
Him188
e0a767060a
Deprecate RemoteFile.upload and relevant extensions, fix #1255 (#1290)
* Deprecate `RemoteFile.upload` and relevant extensions, fix #1255

* Replace '// since 2.7-M1' with '// deprecated since 2.7-M1'

* Move deprecation notes to `RemoteFile.upload`
2021-06-02 14:00:24 +08:00
Karlatemp
1e95482158
Fix the resource leak when closing TxCaptchaHelper(Swing) directly 2021-06-01 12:47:42 +08:00
Karlatemp
c89d31cef6
Redesign LoginSolver (#1285)
* Redesign SwingSolver

* TxCaptchaHelper support

* Simplify TxCaptchaHelper
2021-06-01 12:26:37 +08:00
Him188
043006413c Change upper bound type of MessageSubscribersBuilder.has from Message to SingleMessage, fix #1223 2021-05-31 16:40:57 +08:00
Him188
e6f7edadeb Fix doc on MessageSource 2021-05-30 23:44:52 +08:00
Him188
2d10cc10be Add implementation notes for Listener 2021-05-30 09:42:24 +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
5e25c0e25b Remove bintray 2021-05-25 12:25:53 +08:00
Him188
d43a77b590 Update docs and improve source code readability 2021-05-09 15:31:50 +08:00
Him188
2e1ec03daa Deprecate ForceOfflineException 2021-05-09 13:12:34 +08:00
Him188
d755ebf7ee Use topLevelEventLogger instead of MiraiLogger.TopLevel for non-BotEvent events 2021-05-09 00:54:48 +08:00
Him188
35884182af Fix and improve event logging 2021-05-09 00:54:48 +08:00
Him188
d73f5a2692 Review BotConfiguration and implement relevant configs, implement alive heartbeat, fix behavior on resume 2021-05-09 00:54:48 +08:00
Him188
eb80a4836b Remove all unstable kotlin.Duration usages 2021-05-09 00:54:48 +08:00
Him188
a7a4879d05 Improve logging 2021-05-09 00:54:48 +08:00
Him188
5fa54114c1 Fix sso and event logging 2021-05-09 00:54:48 +08:00
Him188
8db8e2fb03 Implement lifecycle management for network 2021-05-09 00:54:48 +08:00
Him188
076cd4997d BotOfflineEventMonitor 2021-05-09 00:54:48 +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
0dbb448cad Fix doc on BotConfiguration.inheritCoroutineContext 2021-05-01 10:54:21 +08:00
Him188
a8a448272d Add BotConfiguration.heartbeatStrategy
(cherry-picked from #1229)
2021-04-30 22:56:00 +08:00
Him188
104f7b4292 Fix statHeartbeatPeriodMillis not copied in BotConfiguration.copy 2021-04-30 22:06:15 +08:00
wdvxdr1123
758eca55cd
feat: support kugou,kuwo music share (#1228)
* feat: support kugou,kuwo music share

* fix: api check

* fix: api check again

* Update MusicShare.kt

Co-authored-by: Him188 <Him188@mamoe.net>
2021-04-30 22:03:36 +08:00
Him188
c7dfef9ad5 Improve logs on event exception 2021-04-29 12:31:09 +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
c3b6342d34 Fix EventChannelKotlinExtensions resolution ambiguity 2021-04-25 11:35:56 +08:00
AdoptOSS
09475efbda
fix: serialization plugin should not be put into runtime classpath (#1197) 2021-04-17 19:56:19 +08:00
Hoshino Tented
1bf1e3686f
添加管理员修改功能 (#1178)
* add modifyAdmin

* 修复赋予相同权限时不会抛错并且仍然广播事件的 bug

* fix test failed

* fix test failed AGAIN

* fix myself

* 是这样吗

* i am so sorry :(

* fix fixed bug
2021-04-16 08:33:07 +08:00
Him188
f3d3130f2d Support login cache and login without password. close #1158 2021-04-10 18:46:39 +08:00
Him188
455ed6fbeb Move NormalMember.isMuted from extension to member function. fix #1037 2021-04-10 12:58:10 +08:00
Him188
8d3a4fbf5b
Deprecate RemoteFile.moveTo(String) for ambiguous behavior (#1180) 2021-04-09 18:33:12 +08:00
Him188
e20313636a Make Group.setEssenceMessage static 2021-04-08 18:17:00 +08:00
Him188
770615f137 Ensure Mirai impl initialized on serialization, fix #1086 2021-04-07 23:28:41 +08:00
Him188
944099a977 Add _MiraiInstance to allow internal instance overrides 2021-04-07 21:49:44 +08:00
Him188
620771211e Merge remote-tracking branch 'mirai/dev' into dev 2021-04-05 23:58:54 +08:00
Him188
f0093a0cca Fix ignored exceptions in PlatformLogger on Android 2021-04-05 23:58:37 +08:00
Him188
45aca5f37d
Add ForwardMessageBuilder.toRawForwardMessage and make RawForwardMessage stable (#1162)
* Add `ForwardMessageBuilder.toRawForwardMessage` and make RawForwardMessage stable.

* apiDump
2021-04-05 22:35:52 +08:00
AdoptOSS
21e8852e0f
buildscript: fix task not found errors when android sdk not available (#1161)
* buildscript: fix task not found errors when android sdk not available

* fix: this shadowed by run

* cleanup: code style

* improve: avoid breaking index map
2021-04-05 22:35:38 +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
cccdb3cdf2
Update docs for messages (#1142)
* Update docs for messages

* Update docs for messages

* Update docs for messages

* Update docs for messages

* Update docs/Messages.md

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

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

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

* Update docs for messages

* Update docs for messages

* Revert inappropriate changes

* Fix doc

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-04-03 22:39:55 +08:00
Him188
ea1f43b9c5
Fast login (#1154)
* wtlogin10

* Fast login Packet Implement (#1125)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Refresh Token when exchanging and solve connection dropping issue (#1128)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update (#1131)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update

* Add login lock

* Add login lock

* Remove key refresh

* Remove heartbeat period override

* Login: Update tlv and solve constant connection dropping issue (#1150)

* Correct group syncing logic again, Fix #1120

* Implement fast login packet, thanks to MiraiGo

* Delete duplicated tlv

* Schedule token exchanging every 10 minutes, solve connection dropping issue

* Refresh Token when exchanging, and correct token expire time

* Remove useless params for doFastLogin

* Fix missed register and tgt update

* Update tlv, add tlv11d and tlv11a decoding

* Add stat heartbeat, solve constant connection dropping issue

* Update apidump for new configuration

* Add comment for statHeartbeatPeriodMillis

* Change old naming

* Add since version

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

Co-authored-by: sandtechnology <20417547+sandtechnology@users.noreply.github.com>
2021-04-03 22:31:14 +08:00
Him188
1c486854a8 Fix FileMessage.Key 2021-03-30 21:42:05 +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
0f41c225f9 Move SerialDescriptor.copy to mirai-core-utils 2021-03-26 20:42:51 +08:00
Him188
fef0b4220a Merge remote-tracking branch 'mirai/dev' into dev 2021-03-26 10:07:13 +08:00
Him188
7ed8502e68 Fix docs on IMirai.FileCacheStrategy 2021-03-26 10:06:48 +08:00
Him188
c071ac5773
Update docs of Nudge, clearification 2021-03-23 23:57:20 +08:00
Him188
f8da762d2f Merge remote-tracking branch 'mirai/dev' into dev 2021-03-22 12:52:39 +08:00
Him188
c006a48de5 Update docs about FileCacheStrategy, close #1046 2021-03-22 12:52:18 +08:00
Him188
ee1ea33898 Remove inappropriate use of DSL marker on ForwardMessageBuilder.add 2021-03-22 11:24:26 +08:00
Him188
0c3c85f61c Add members to make ForwardMessageBuilder easier to use from Java, close #1087 2021-03-22 11:24:26 +08:00
Him188
f42747f6ac Make buildMessageChain not @JvmSynthetic 2021-03-22 11:21:22 +08:00
Him188
daa7453d73 Add UserOrBot.nameCardOrNick 2021-03-22 11:16:34 +08:00
Him188
146433d56f Add common UserOrBot.nick 2021-03-22 11:16:34 +08:00
Him188
9f52a26fbd Fix FileMessage mirai code 2021-03-20 22:31:12 +08:00
Him188
0112d4622e Rename ExternalResource.Companion.uploadAsFileTo to uploadAsFile to keep consistency 2021-03-20 16:49:02 +08:00
Him188
09cbc55ef6 RemoteFile.FileInfo.resolveToFile: use FileSupport than Group 2021-03-20 16:45:01 +08:00
Him188
7f6812727a Update RemoteFile docs and mark RemoteFile as stable 2021-03-20 16:45:00 +08:00
Him188
74d59982ae Add more extensions for RemoteFile and ExternalResource 2021-03-20 15:59:58 +08:00
Him188
b328328ddd Add docs for RemoteFile and mark some API as stable 2021-03-20 15:59:58 +08:00
Him188
b5d8306902 Add RemoteFile.listFilesCollection()
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-03-20 15:59:58 +08:00
Him188
5f02c35e66 Merge remote-tracking branch 'mirai/dev' into dev 2021-03-20 15:33:48 +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
f9353b6aef
Compiled code verify (#1080)
* Compiled code verify

* Run `verifyCompiledClasses` in `check` task

* Redesign verification

Co-authored-by: Bo Zhang <bo@gradle.com>

* Disable console verify

* Decoupling

Co-authored-by: Bo Zhang <bo@gradle.com>
2021-03-20 13:34:04 +08:00
Karlatemp
3152e24523
Fix operations of RemoteFile (#1104)
* Fix operations of RemoteFile

* apiDump

* Remove duplicate method

* Don't setup fileId
2021-03-18 12:30:06 +08:00
Karlatemp
5cd62319b7
Update docs of RemoteFile 2021-03-17 23:41:49 +08:00
Him188
e256ec06d3
Support file operations (#1069)
* Proto structs for group file

* RemoteFile fundamental abstraction and proto structs

* Configure JVM target for mirai-console-intellij

* Add Group.filesRoot

* Fix build

* Implement a FileSystem for RemoteFile resolution

* Fix RemoteFile FileSystem and implement resolve and listFiles

* Implement file info query and file download

* Support uploading group file

* Support file feeds

* 2.5-M2-dev-1

* Fix tests

* 2.5-M2-dev-2

* Add uuid-based resolving, support getting file details

* Support FileMessage receive

* Support sending FileMessage

* 2.5-M2-dev-3

* Add DownloadInfo.id

* Improve RemoteFile.delete

* Support move, delete, rename, mkdir. Simplify listFiles

* - Rename RemoteFile.write to .upload.
- Prefer id matching
- Improve move

* Add permission checks

* Improve permission checks

* Rearrange functions and add constant ROOT_PATH

* Introduce FileSupported, add extensions

* Introduce ProgressionCallback

* Fix docs and uploadFileAndSend

* Remove empty FileHighway.kt

* Add test testNormalize

* Add RemoteFile.contact, change RemoteFile.uploadAndSend return type to MessageReceipt

* Move @JvmBlockingBridge to file

* Change FileMessage.toRemoteFile parameter type Group to FileSupported

* Add impl notes #1082
2021-03-08 18:34:45 +08:00
Him188
b7c0f40d7e Revert "Implement multiplatform EventChannel for android specially"
This reverts commit dd7aed88
2021-02-26 15:34:51 +08:00
Him188
7fd281c496 Remove reflection API calls which are unsupported by Android 2021-02-25 11:19:18 +08:00
Him188
aaab3ae109 Merge branch 'dev' into android_target
# Conflicts:
#	build.gradle.kts
2021-02-25 10:39:51 +08:00
Him188
2c14f0016f Disable atomicFU compiler plugin 2021-02-25 09:35:51 +08:00
Him188
abf9baefc1 Remove @file:JvmName on PlatformLogger actual declarations, fix potential compiling issue 2021-02-25 07:54:36 +08:00
Karlatemp
7a7c88b783
Android api level check 2021-02-25 00:12:58 +08:00
Him188
dd7aed885d Implement multiplatform EventChannel for android specially 2021-02-24 15:57:54 +08:00
Him188
7b80ac5a0c Replace usage of java.util.List.removeIf to Kotlin's MutableList.removeAll 2021-02-24 15:15:47 +08:00
Him188
ba61194fa4 Move StandardCharImageLoginSolver from common to jvm 2021-02-24 15:15:43 +08:00
Him188
d3583162a5 Replace usage of List.replaceAll with Kotlin's 2021-02-24 15:15:31 +08:00
Him188
95688e37af
Update to Kotlin 1.4.30 and bump other dependencies versions (#1049)
- kotlin-stdlib and compiler 1.4.30
- kotlinx-serialization 1.1.0-RC
- kotlinx-coroutines 1.4.2
- ktor 1.5.1
- atomicfu 0.15.1
- yamlkt 0.9.0
- kotlin-jvm-blocking-bridge 1.10.0
- intellij 2020.3.2
- kotlin-intellij 203-1.4.30-release-IJ7148.5
- Gradle 6.8.2
2021-02-24 12:15:19 +08:00
Him188
9c3a175b02 Configure binary compatibility validator for android target 2021-02-24 11:36:03 +08:00
Him188
aa289e932f Multiplatform LoginSolver:
- On JVM: Same behaviour as before
- On Android: LoginSolver.Default returns `null` always
2021-02-24 10:18:04 +08:00