Commit Graph

734 Commits

Author SHA1 Message Date
Him188
3955546868 Add MessageVisitor, MessageVisitorEx, Message.accept and Message.acceptChildren as internal API 2022-05-25 22:39:53 +01:00
cssxsh
a1a517c03f
fix: FileMessage.Delegate SerialName (#2041) 2022-05-18 09:07:31 +01:00
Him188
d8ceb7ae5b Fix @since 2022-05-16 19:14:14 +01:00
Him188
4495e36e7c Fix event broadcast directly without checks. Add notes for broadcasting an event. 2022-05-16 19:14:14 +01:00
Him188
2f40d3f432 Deprecate EventDisabled for ERROR 2022-05-16 19:14:14 +01:00
Him188
0c809f4e4c Remove internal EventBroadcast, code cleanup 2022-05-16 19:14:14 +01:00
Him188
497d9ff810 Update docs for Event, EventChannel, and Listener 2022-05-16 19:14:14 +01:00
Him188
c391d3f886 Refine nextEvent and syncFromEvent: handle exceptions correctly 2022-05-16 19:14:14 +01:00
Him188
30dbd1b1c2 Pass exceptions caught in subscriber context to subscriber only 2022-05-16 19:14:14 +01:00
Him188
c192047361 Move event implementations to EventDispatcher and add EventChannel.asFlow. 2022-05-16 19:14:14 +01:00
cssxsh
c6b47a3231
Fix MarketFace contentToString, return '[商城表情]' if original name is empty (#2030) 2022-05-14 11:14:36 +01:00
Karlatemp
cb3bba986c
Fix IMirai initialize; Fix #1861; Fix some error caused by d757764308 2022-05-06 17:47:22 +08:00
Him188
4fa853065c Add BotConfiguration.disableAccountSecretes 2022-05-02 14:01:53 +01:00
Him188
54eb4387e4 Make log4j.Logger.asMiraiLogger and useLog4j2 stable 2022-05-02 11:13:55 +01:00
Karlatemp
c37576fda7
Log exception when failed to initialize java.desktop for better user debugging; Use CLI if in headless mode 2022-04-30 12:49:28 +08:00
Him188
bb8cd86daa Update dependencies:
Kotlin 1.6.21
Dokka 1.6.20
coroutines 1.6.1
atomifFU 0.17.2
serialization 1.3.2
ktor 1.6.7
blocking-bridge 2.0.0-162.1
dynamic-delegation 0.3.0-162.2
2022-04-26 11:12:35 +01:00
Him188
acb048c267 Add errorSince information for deprecation for BotConfiguration.json 2022-04-25 15:50:46 +01:00
Him188
7f85319a92 Deprecate BotConfiguration.json 2022-04-24 15:30:02 +01:00
Him188
1d60cf57b8 Add @since 2.11 for avatarUrl and AvatarSpec (for #1721) 2022-04-24 12:50:33 +01:00
cssxsh
7a9769b618
Add getAvatarUrl(spec: Int) fix (#1557) (#1721)
* Add getAvatarUrl(spec: Int) fix (#1557)

* Add api dump

* Add AvatarSpec

* Add api dump

* fix: docs

* rename: getAvatarUrl
2022-04-24 12:48:18 +01:00
Runze Zhang
cc3d645d4c
Typo fixed (#1978) 2022-04-16 11:16:50 +01:00
Him188
8993de9a13 Review deprecation for 2.11, close #1837 2022-04-13 12:47:21 +01:00
Him188
d1cb05025e Deprecated IMirai.Http for future removal 2022-04-13 12:08:39 +01:00
Him188
2a8f7de23d Throw SendMessageFailedException with new reason AT_ALL_LIMITED, fix #1948 2022-04-02 13:24:30 +01:00
Karlatemp
1688dc9453
Fix typo of ExternalResource 2022-03-22 22:57:30 +08:00
Him188
4c600f9ded Rearrange ExternalResource.toAutoCloseable and update docs for ExternalResource 2022-03-21 13:39:41 +00:00
Him188
57a4b80d55 Update docs for ExternalResource 2022-03-21 13:22:35 +00:00
Him188
91e3ebdd03 Update docs for Image, close #1940 2022-03-21 13:04:24 +00:00
Him188
ab9c2ef2b2 Add Audio.lengthDuration 2022-03-16 15:34:12 +00:00
LaoLittle
827844c5d1
补充Nudge文档: 戳一戳上限 (#1908) 2022-03-05 02:27:00 +00:00
Him188
66bca56e39 Add more detail docs for RoamingMessages 2022-02-12 13:53:23 +00:00
cssxsh
cadb529588
为生成的 IMEI 增加校验位 (#1855)
* feat: luhn

* fix: China Country Code 86

* fix: China Country Code 86

* fix: China Country Code 86
2022-02-12 12:47:19 +00:00
AdoptOSS
4586203c80 improve(logger/log4j): use reusable message for better performance 2022-02-12 12:36:41 +00:00
Him188
1012c6fbf6 Add createAutoCloseable back, close #1856 (caused by #1742 (PR #1774)) 2022-01-31 15:15:14 +00:00
Him188
701039ee48
弃用无 receiver 的事件扩展函数, 增加其 EventChannel receiver 版本替换 (#1754)
* Deprecate no-receiver functions `nextEvent*`, `syncFromEvent*`, `asyncFromEvent*`. Add their `EventChannel`-receiver counterparts. #1827

* Fix migration

* Migrate `nextMessage` to new API
2022-01-20 10:15:10 +00:00
Him188
747bc05591 Update apiDump for previous commit 2d26f94769 (Move AbstractImage, FriendImage, GroupImage from mirai-core-api to mirai-core) 2022-01-14 19:34:04 +00:00
Him188
2d26f94769 Move AbstractImage, FriendImage, GroupImage from mirai-core-api to mirai-core, close #1670 2022-01-14 19:02:38 +00:00
Him188
7d3971259d
Review deprecation for 2.10. close #1742 (#1774) 2022-01-14 18:26:44 +00:00
Him188
1ab48748ab Fix project structure for Dokka
Co-authored-by: 微莹·纤绫 <karlatemp@vip.qq.com>
2022-01-06 20:26:52 +00:00
Him188
3d864362aa Generalize binary validator 2022-01-06 20:26:52 +00:00
Him188
2a036d7bb3 Simplify buildscript: remove redundant comments 2022-01-06 04:46:58 +00:00
LaoLittle
0c964f3144
允许使用 IPAD 协议发送戳一戳 (#1711)
* 修改注释

* IPAD协议发送戳一戳时不抛出UnsupportedOperationException

* 修改注释

“安卓协议”的描述并不准确,ANDROID_PAD 也是安卓协议,但是完全不支持戳一戳
修改进行明确

* Apply suggestions from code review

* Update Nudge.kt

Co-authored-by: Initial-heart <63091661+Initial-heart-1@users.noreply.github.com>
Co-authored-by: Him188 <Him188@mamoe.net>
2022-01-06 01:16:42 +00:00
Him188
1819374b9a Use SimpleMessage for Log4J2 for security, close #1729 2021-12-30 14:34:25 +00:00
Him188
1cd354a7e3 Add @ResolveContext for usages of abstract message keys, implement relevant inspections, close #1363 2021-12-27 13:07:17 +00:00
Him188
6103628801 Remove __broadcastJava 2021-12-23 01:37:11 +00:00
Him188
7faf630454 Update kotlin-jvm-blocking-bridge to 2.0.0-160.2 2021-12-23 01:37:11 +00:00
Him188
9d3c7315cb Remove @ExperimentalTime on BotConfiguration 2021-12-23 01:37:11 +00:00
Him188
46865721b0 Use new Duration methods 2021-12-23 01:37:11 +00:00
Him188
26c099798b
Deprecate experimental EventChannel.asChannel and add EventChannel.forwardToChannel (#1753)
* Deprecate experimental `EventChannel.asChannel` and add `EventChannel.forwardToChannel`

* Remove redundant opt-ins
2021-12-22 19:02:11 +00:00
StarWishsama
53883e885c
修复设置 redirectNetworkLogToDirectory 后日志 identity 为 Bot 的问题 fix #1743 (#1751) 2021-12-21 22:57:46 +00:00
Him188
575225874c Explicitly add dependency on kotlinx-coroutines-core-jvm to help IDE analysis 2021-12-21 18:09:12 +00:00
Him188
bc1cce313f
Support AbsoluteFolder.resolveFolderById (#1712)
* Support `AbsoluteFolder.resolveFolderById`

* resolveFolderById: Always return null when receiver is not root and id is not root
2021-12-06 15:23:27 +00:00
微莹·纤绫
d10d20302e
Dokka (#1708)
* dokka

* test

* Fix classpath

* Fix deploy

* Fix deploy

* Fix deploy

* GitHub workflows
2021-12-04 15:43:09 +00:00
Him188
74fc5a5037 Throw specific SendMessageFailedException when reaching group chat limit, close #1220 2021-11-30 13:06:01 +00:00
Him188
a989ea9db1 Add SendMessageFailedException, change supertypes of MessageTooLargeException and BotIsBeingMutedException to the new exception 2021-11-30 13:06:01 +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
25970cbf56 minor: move NormalMember.kick overloads from mirai-core to mirai-core-api 2021-11-26 17:59:07 +00:00
Him188
7c550bff7d
Add Image.Factory and Image.Builder for constructing Image inst… (#1673)
* Add `Image.Factory` and `Image.Builder` for constructing `Image` instances with specific properties. close #1672

* Remove redundant `create`s

* Add docs for `Image.Builder`

* Remove Image.Factory, use Image.Builder in all places.

* Fix cache & parameters

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-11-20 23:36:14 +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
Karlatemp
4db04e2a76
Fix group detection; fix #1661 2021-11-12 21:35:41 +08:00
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