Skip to content

Commit

Permalink
update announcements support
Browse files Browse the repository at this point in the history
  • Loading branch information
MrXiaoM committed Jan 22, 2024
1 parent f824f25 commit 80ebc4d
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@ package top.mrxiaom.overflow.contact
import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge
import net.mamoe.mirai.contact.ContactList
import net.mamoe.mirai.contact.NormalMember
import net.mamoe.mirai.contact.announcement.Announcements

interface RemoteGroup {
@JvmBlockingBridge
suspend fun updateGroupMemberList(): ContactList<NormalMember>
@JvmBlockingBridge
suspend fun updateAnnouncements(): Announcements
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import kotlinx.coroutines.CoroutineName
import kotlinx.coroutines.runBlocking
import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge
import net.mamoe.mirai.contact.*
import net.mamoe.mirai.contact.announcement.Announcements
import net.mamoe.mirai.contact.roaming.RoamingMessages
import net.mamoe.mirai.event.broadcast
import net.mamoe.mirai.event.events.EventCancelledException
Expand Down Expand Up @@ -46,6 +47,10 @@ internal class GroupWrapper(
override suspend fun queryUpdate() {
impl = botWrapper.impl.getGroupInfo(impl.groupId, false).data
}

override suspend fun updateAnnouncements(): Announcements {
return announcements.also { it.update() }
}
internal suspend fun updateMember(userId: Long): MemberWrapper? {
return botWrapper.impl.getGroupMemberInfo(id, userId, false).data?.run { updateMember(this) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import top.mrxiaom.overflow.spi.FileService

internal class AnnouncementsWrapper(
val impl: GroupWrapper,
val list: List<OnlineAnnouncementWrapper>
internal var list: List<OnlineAnnouncementWrapper>
) : Announcements {
override fun asFlow(): Flow<OnlineAnnouncement> = list.asFlow()

Expand Down Expand Up @@ -53,6 +53,10 @@ internal class AnnouncementsWrapper(
return AnnouncementImage.create("\n${FileService.instance!!.upload(resource)}\n", size?.height ?: 0, size?.width ?: 0)
}

suspend fun update() {
list = impl.fetchAnnouncements().list
}

companion object {
suspend fun GroupWrapper.fetchAnnouncements(): AnnouncementsWrapper {
val list = botWrapper.impl.getGroupNotice(id).data?.map {
Expand Down

0 comments on commit 80ebc4d

Please sign in to comment.