mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-26 08:00:11 +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 final fun getHeight ()I
|
||||
public final fun getId ()Ljava/lang/String;
|
||||
public final fun getUrl ()Ljava/lang/String;
|
||||
public final fun getWidth ()I
|
||||
public fun hashCode ()I
|
||||
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 final fun getHeight ()I
|
||||
public final fun getId ()Ljava/lang/String;
|
||||
public final fun getUrl ()Ljava/lang/String;
|
||||
public final fun getWidth ()I
|
||||
public fun hashCode ()I
|
||||
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 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* 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`.
|
||||
|
||||
/**
|
||||
* @since 2.15
|
||||
*/
|
||||
public val url: String get() = "https://gdynamic.qpic.cn/gdynamic/$id/628"
|
||||
|
||||
public companion object {
|
||||
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 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* 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.rightOrNull
|
||||
|
||||
internal expect class AnnouncementsImpl(
|
||||
group: GroupImpl,
|
||||
logger: MiraiLogger,
|
||||
) : CommonAnnouncementsImpl
|
||||
|
||||
internal abstract class CommonAnnouncementsImpl(
|
||||
internal class AnnouncementsImpl(
|
||||
protected val group: GroupImpl,
|
||||
protected val logger: MiraiLogger,
|
||||
) : Announcements {
|
||||
@ -412,6 +407,7 @@ internal object AnnouncementProtocol {
|
||||
showPopup = settings.tipWindowType == 0
|
||||
requireConfirmation = settings.confirmRequired == 1
|
||||
showEditCard = settings.isShowEditCard == 1
|
||||
image = msg.images.firstOrNull()?.toPublic()
|
||||
},
|
||||
fid = fid,
|
||||
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 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* 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
|
||||
internal data class GroupAnnouncementMsg(
|
||||
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
|
||||
)
|
||||
|
||||
|
@ -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