Skip to content

Commit 933095e

Browse files
committed
optimize(api): 增加接口 UrlAwareMessage 用以描述能够获取到 URL 信息的消息元素
1 parent 67f65a3 commit 933095e

File tree

4 files changed

+36
-12
lines changed

4 files changed

+36
-12
lines changed

buildSrc/src/main/kotlin/P.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ sealed class P(override val group: String) : ProjectDetail() {
5353
companion object {
5454
const val VERSION = "4.2.0"
5555
const val SNAPSHOT_VERSION = "$VERSION-SNAPSHOT"
56-
const val NEXT_VERSION = "4.2.0"
56+
const val NEXT_VERSION = "4.3.0"
5757
const val NEXT_SNAPSHOT_VERSION = "$NEXT_VERSION-SNAPSHOT"
5858

5959
const val GROUP = "love.forte.simbot"

simbot-api/api/simbot-api.api

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,7 +1830,7 @@ public final class love/forte/simbot/message/AtAll : love/forte/simbot/message/M
18301830
public fun toString ()Ljava/lang/String;
18311831
}
18321832

1833-
public final class love/forte/simbot/message/Emoji : love/forte/simbot/message/EmoticonMessage {
1833+
public final class love/forte/simbot/message/Emoji : love/forte/simbot/message/EmoticonMessage, love/forte/simbot/message/StandardMessage {
18341834
public static final field Companion Llove/forte/simbot/message/Emoji$Companion;
18351835
public fun <init> (Llove/forte/simbot/common/id/ID;)V
18361836
public final fun component1 ()Llove/forte/simbot/common/id/ID;
@@ -1860,7 +1860,7 @@ public final class love/forte/simbot/message/Emoji$Companion {
18601860
public abstract interface class love/forte/simbot/message/EmoticonMessage : love/forte/simbot/message/StandardMessage {
18611861
}
18621862

1863-
public final class love/forte/simbot/message/Face : love/forte/simbot/message/EmoticonMessage {
1863+
public final class love/forte/simbot/message/Face : love/forte/simbot/message/EmoticonMessage, love/forte/simbot/message/StandardMessage {
18641864
public static final field Companion Llove/forte/simbot/message/Face$Companion;
18651865
public fun <init> (Llove/forte/simbot/common/id/ID;)V
18661866
public final fun component1 ()Llove/forte/simbot/common/id/ID;
@@ -2319,7 +2319,11 @@ public final class love/forte/simbot/message/Text$Companion {
23192319
public final fun serializer ()Lkotlinx/serialization/KSerializer;
23202320
}
23212321

2322-
public abstract interface class love/forte/simbot/message/UrlAwareImage : love/forte/simbot/message/Image {
2322+
public abstract interface class love/forte/simbot/message/UrlAwareImage : love/forte/simbot/message/Image, love/forte/simbot/message/UrlAwareMessage {
2323+
public abstract synthetic fun url (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
2324+
}
2325+
2326+
public abstract interface class love/forte/simbot/message/UrlAwareMessage {
23232327
public fun getUrl ()Ljava/lang/String;
23242328
public fun getUrlAsync ()Ljava/util/concurrent/CompletableFuture;
23252329
public fun getUrlReserve ()Llove/forte/simbot/suspendrunner/reserve/SuspendReserve;

simbot-api/src/commonMain/kotlin/love/forte/simbot/message/StandardMessages.kt

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,13 @@ public data object AtAll : MentionMessage
228228
/**
229229
* 一个图片消息元素类型。
230230
*
231-
* 图片消息可能被分为 [离线图片][OfflineImage] 和 [远端图片][RemoteImage]。
231+
* 图片消息可能被分为 [离线图片][OfflineImage]
232+
* 和 [远端图片][RemoteImage]。
233+
*
234+
* 在不同的平台中,图片的表现方式或实现方式千变万化,
235+
* 它们的类型很可能并非标准消息类型中提供的已知类型。
236+
* 对于实现者,应当尽可能支持 [UrlAwareImage]
237+
* 来表示一个能够得到 URL 信息的图片。
232238
*
233239
* @see OfflineImage
234240
* @see RemoteImage
@@ -250,12 +256,12 @@ public interface IDAwareImage : Image {
250256
* 一个可以感知或获取到 url 信息的 [Image]。
251257
*
252258
*/
253-
@STP
254-
public interface UrlAwareImage : Image {
259+
public interface UrlAwareImage : Image, UrlAwareMessage {
255260
/**
256-
* 获取到这个图片的链接字符串
261+
* 获取或查询此图片的链接
257262
*/
258-
public suspend fun url(): String
263+
@JvmSynthetic
264+
override suspend fun url(): String
259265
}
260266

261267

@@ -437,13 +443,27 @@ public interface EmoticonMessage : StandardMessage
437443
*/
438444
@Serializable
439445
@SerialName("m.std.emoji")
440-
public data class Emoji(public val id: ID) : EmoticonMessage
446+
public data class Emoji(public val id: ID) : StandardMessage, EmoticonMessage
441447

442448
/**
443449
* 一个表情。一般代表平台提供的自带系统表情。
444450
*/
445451
@Serializable
446452
@SerialName("m.std.face")
447-
public data class Face(public val id: ID) : EmoticonMessage
453+
public data class Face(public val id: ID) : StandardMessage, EmoticonMessage
448454
//endregion
449455

456+
457+
/**
458+
* 表示为一个可以得知 URL 地址的消息元素,
459+
* 例如 [UrlAwareImage]。
460+
*
461+
* @since 4.3.0
462+
*/
463+
@STP
464+
public interface UrlAwareMessage {
465+
/**
466+
* 获取到链接字符串。
467+
*/
468+
public suspend fun url(): String
469+
}

0 commit comments

Comments
 (0)