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