Commit Graph

530 Commits

Author SHA1 Message Date
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