mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-27 08:50:15 +08:00
[core] 支持获取群公告图片 URL (#2619)
* fix: announcement protocol * add: api dump
This commit is contained in:
parent
50d37c484a
commit
71e9de3608
@ -803,6 +803,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementImage {
|
|||||||
public fun equals (Ljava/lang/Object;)Z
|
public fun equals (Ljava/lang/Object;)Z
|
||||||
public final fun getHeight ()I
|
public final fun getHeight ()I
|
||||||
public final fun getId ()Ljava/lang/String;
|
public final fun getId ()Ljava/lang/String;
|
||||||
|
public final fun getUrl ()Ljava/lang/String;
|
||||||
public final fun getWidth ()I
|
public final fun getWidth ()I
|
||||||
public fun hashCode ()I
|
public fun hashCode ()I
|
||||||
public fun toString ()Ljava/lang/String;
|
public fun toString ()Ljava/lang/String;
|
||||||
|
@ -803,6 +803,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementImage {
|
|||||||
public fun equals (Ljava/lang/Object;)Z
|
public fun equals (Ljava/lang/Object;)Z
|
||||||
public final fun getHeight ()I
|
public final fun getHeight ()I
|
||||||
public final fun getId ()Ljava/lang/String;
|
public final fun getId ()Ljava/lang/String;
|
||||||
|
public final fun getUrl ()Ljava/lang/String;
|
||||||
public final fun getWidth ()I
|
public final fun getWidth ()I
|
||||||
public fun hashCode ()I
|
public fun hashCode ()I
|
||||||
public fun toString ()Ljava/lang/String;
|
public fun toString ()Ljava/lang/String;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
* Copyright 2019-2023 Mamoe Technologies and contributors.
|
||||||
*
|
*
|
||||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||||
@ -31,6 +31,11 @@ public class AnnouncementImage private constructor(
|
|||||||
) {
|
) {
|
||||||
// For stability, do not make it `data class`.
|
// For stability, do not make it `data class`.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 2.15
|
||||||
|
*/
|
||||||
|
public val url: String get() = "https://gdynamic.qpic.cn/gdynamic/$id/628"
|
||||||
|
|
||||||
public companion object {
|
public companion object {
|
||||||
public const val SERIAL_NAME: String = "AnnouncementImage"
|
public const val SERIAL_NAME: String = "AnnouncementImage"
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
* Copyright 2019-2023 Mamoe Technologies and contributors.
|
||||||
*
|
*
|
||||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||||
@ -48,12 +48,7 @@ import net.mamoe.mirai.utils.*
|
|||||||
import net.mamoe.mirai.utils.Either.Companion.onLeft
|
import net.mamoe.mirai.utils.Either.Companion.onLeft
|
||||||
import net.mamoe.mirai.utils.Either.Companion.rightOrNull
|
import net.mamoe.mirai.utils.Either.Companion.rightOrNull
|
||||||
|
|
||||||
internal expect class AnnouncementsImpl(
|
internal class AnnouncementsImpl(
|
||||||
group: GroupImpl,
|
|
||||||
logger: MiraiLogger,
|
|
||||||
) : CommonAnnouncementsImpl
|
|
||||||
|
|
||||||
internal abstract class CommonAnnouncementsImpl(
|
|
||||||
protected val group: GroupImpl,
|
protected val group: GroupImpl,
|
||||||
protected val logger: MiraiLogger,
|
protected val logger: MiraiLogger,
|
||||||
) : Announcements {
|
) : Announcements {
|
||||||
@ -412,6 +407,7 @@ internal object AnnouncementProtocol {
|
|||||||
showPopup = settings.tipWindowType == 0
|
showPopup = settings.tipWindowType == 0
|
||||||
requireConfirmation = settings.confirmRequired == 1
|
requireConfirmation = settings.confirmRequired == 1
|
||||||
showEditCard = settings.isShowEditCard == 1
|
showEditCard = settings.isShowEditCard == 1
|
||||||
|
image = msg.images.firstOrNull()?.toPublic()
|
||||||
},
|
},
|
||||||
fid = fid,
|
fid = fid,
|
||||||
allConfirmed = isAllConfirm != 0,
|
allConfirmed = isAllConfirm != 0,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2019-2021 Mamoe Technologies and contributors.
|
* Copyright 2019-2023 Mamoe Technologies and contributors.
|
||||||
*
|
*
|
||||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||||
@ -63,7 +63,8 @@ internal class GroupAnnouncementImage @MiraiInternalApi constructor(
|
|||||||
@Serializable
|
@Serializable
|
||||||
internal data class GroupAnnouncementMsg(
|
internal data class GroupAnnouncementMsg(
|
||||||
val text: String,
|
val text: String,
|
||||||
val text_face: String? = null,
|
@SerialName("text_face") val textFace: String? = null,
|
||||||
|
@SerialName("pics") val images: List<GroupAnnouncementImage> = emptyList(),
|
||||||
// val title: String? = null // no title any more
|
// val title: String? = null // no title any more
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
|
||||||
*
|
|
||||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
|
||||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
|
||||||
*
|
|
||||||
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.mamoe.mirai.internal.contact.announcement
|
|
||||||
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import net.mamoe.mirai.contact.announcement.OnlineAnnouncement
|
|
||||||
import net.mamoe.mirai.internal.contact.GroupImpl
|
|
||||||
import net.mamoe.mirai.internal.contact.announcement.AnnouncementProtocol.toAnnouncement
|
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
|
||||||
import net.mamoe.mirai.utils.stream
|
|
||||||
import java.util.stream.Stream
|
|
||||||
|
|
||||||
internal actual class AnnouncementsImpl actual constructor(
|
|
||||||
group: GroupImpl,
|
|
||||||
logger: MiraiLogger,
|
|
||||||
) : CommonAnnouncementsImpl(group, logger) {
|
|
||||||
override fun asStream(): Stream<OnlineAnnouncement> {
|
|
||||||
return stream {
|
|
||||||
var i = 1
|
|
||||||
while (true) {
|
|
||||||
val result = runBlocking { getGroupAnnouncementList(i++) } ?: break
|
|
||||||
|
|
||||||
if (result.inst.isNullOrEmpty() && result.feeds.isNullOrEmpty()) break
|
|
||||||
|
|
||||||
result.inst?.let { yieldAll(it) }
|
|
||||||
result.feeds?.let { yieldAll(it) }
|
|
||||||
}
|
|
||||||
}.map { it.toAnnouncement(group) }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
|
||||||
*
|
|
||||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
|
||||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
|
||||||
*
|
|
||||||
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
|
||||||
*/
|
|
||||||
|
|
||||||
package net.mamoe.mirai.internal.contact.announcement
|
|
||||||
|
|
||||||
import net.mamoe.mirai.internal.contact.GroupImpl
|
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
|
||||||
|
|
||||||
internal actual class AnnouncementsImpl actual constructor(
|
|
||||||
group: GroupImpl,
|
|
||||||
logger: MiraiLogger
|
|
||||||
) : CommonAnnouncementsImpl(group, logger)
|
|
Loading…
Reference in New Issue
Block a user