Add antispam false positive reporting

This commit is contained in:
Ilya Laktyushin
2022-11-21 20:25:16 +04:00
parent 1750bc5a73
commit 3895daa974
8 changed files with 350 additions and 55 deletions

View File

@@ -3,6 +3,7 @@ import SwiftSignalKit
public struct ChannelAdminEventLogEntry: Comparable {
public let stableId: UInt32
public let headerStableId: UInt32
public let event: AdminLogEvent
public let peers: [PeerId: Peer]
@@ -85,6 +86,7 @@ public final class ChannelAdminEventLogContext {
private var filter: ChannelAdminEventLogFilter = ChannelAdminEventLogFilter()
private var nextStableId: UInt32 = 1
private var headerStableIds: [AdminLogEventId: UInt32] = [:]
private var stableIds: [AdminLogEventId: UInt32] = [:]
private var entries: ([ChannelAdminEventLogEntry], ChannelAdminEventLogFilter) = ([], ChannelAdminEventLogFilter())
@@ -182,13 +184,13 @@ public final class ChannelAdminEventLogContext {
}
var entries: [ChannelAdminEventLogEntry] = events.map { event in
return ChannelAdminEventLogEntry(stableId: strongSelf.stableIdForEventId(event.id), event: event, peers: result.peers)
return ChannelAdminEventLogEntry(stableId: strongSelf.stableIdForEventId(event.id), headerStableId: strongSelf.headerStableIdForEventId(event.id), event: event, peers: result.peers)
}
entries.append(contentsOf: strongSelf.entries.0)
strongSelf.entries = (entries, strongSelf.filter)
} else {
let entries: [ChannelAdminEventLogEntry] = events.map { event in
return ChannelAdminEventLogEntry(stableId: strongSelf.stableIdForEventId(event.id), event: event, peers: result.peers)
return ChannelAdminEventLogEntry(stableId: strongSelf.stableIdForEventId(event.id), headerStableId: strongSelf.headerStableIdForEventId(event.id), event: event, peers: result.peers)
}
strongSelf.entries = (entries, strongSelf.filter)
}
@@ -214,4 +216,15 @@ public final class ChannelAdminEventLogContext {
return value
}
}
private func headerStableIdForEventId(_ id: AdminLogEventId) -> UInt32 {
if let value = self.headerStableIds[id] {
return value
} else {
let value = self.nextStableId
self.nextStableId += 1
self.headerStableIds[id] = value
return value
}
}
}

View File

@@ -292,6 +292,10 @@ public extension TelegramEngine {
return _internal_toggleAntiSpamProtection(account: self.account, peerId: peerId, enabled: enabled)
}
public func reportAntiSpamFalsePositive(peerId: PeerId, messageId: MessageId) -> Signal<Bool, NoError> {
return _internal_reportAntiSpamFalsePositive(account: self.account, peerId: peerId, messageId: messageId)
}
public func requestPeerPhotos(peerId: PeerId) -> Signal<[TelegramPeerPhoto], NoError> {
return _internal_requestPeerPhotos(postbox: self.account.postbox, network: self.account.network, peerId: peerId)
}