Bot forums v2

This commit is contained in:
Isaac
2025-09-05 15:25:50 +02:00
parent 63e2a1c417
commit 1d06c3f058
79 changed files with 852 additions and 1303 deletions

View File

@@ -1040,23 +1040,6 @@ public final class ChatListView {
self.groupId = mutableView.groupId
var entries: [ChatListEntry] = []
//TODO:release
var linkedEntries: [PeerId: [MutableChatListEntry.MessageEntryData]] = [:]
if "".isEmpty {
for entry in mutableView.sampledState.entries {
guard case let .MessageEntry(entryData) = entry else {
continue
}
if let peer = entryData.renderedPeer.peer, peer.id.namespace._internalGetInt32Value() == 2, let associatedPeerId = peer.associatedPeerId, associatedPeerId.namespace._internalGetInt32Value() == 0 {
if linkedEntries[associatedPeerId] == nil {
linkedEntries[associatedPeerId] = []
}
linkedEntries[associatedPeerId]?.append(entryData)
}
}
}
for entry in mutableView.sampledState.entries {
switch entry {
case let .MessageEntry(entryData):
@@ -1064,36 +1047,10 @@ public final class ChatListView {
continue
}
//TODO:release
var index = entryData.index
var messages = entryData.messages
var readState = entryData.readState
var forumTopicData = entryData.displayAsRegularChat ? nil : entryData.forumTopicData
if let linkedEntries = linkedEntries[entryData.index.messageIndex.id.peerId] {
for entry in linkedEntries {
if entry.index.messageIndex.timestamp >= index.messageIndex.timestamp {
index = ChatListIndex(pinningIndex: index.pinningIndex, messageIndex: MessageIndex(id: index.messageIndex.id, timestamp: entry.index.messageIndex.timestamp))
messages = entry.messages
forumTopicData = entry.forumTopicData
}
if let entryReadState = entry.readState {
if var readStateValue = readState {
var states = readStateValue.state.states
for (namespace, state) in entryReadState.state.states {
if let index = states.firstIndex(where: { $0.0 == namespace }) {
states[index] = (namespace, states[index].1.withAddedCount(state.count))
} else {
states.append((namespace, state))
}
}
readStateValue.state = .init(states: states)
readState = readStateValue
} else {
readState = entryReadState
}
}
}
}
let index = entryData.index
let messages = entryData.messages
let readState = entryData.readState
let forumTopicData = entryData.displayAsRegularChat ? nil : entryData.forumTopicData
entries.append(.MessageEntry(ChatListEntry.MessageEntryData(
index: index,