mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-26 15:31:12 +00:00
Merge branch 'master' of https://github.com/peter-iakovlev/TelegramCore
This commit is contained in:
commit
d2734b02a7
@ -202,8 +202,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
|
||||
dict[-471670279] = { return Api.ChannelParticipant.parse_channelParticipantCreator($0) }
|
||||
dict[-1557620115] = { return Api.ChannelParticipant.parse_channelParticipantSelf($0) }
|
||||
dict[-1473271656] = { return Api.ChannelParticipant.parse_channelParticipantAdmin($0) }
|
||||
dict[871546323] = { return Api.ChannelParticipant.parse_channelParticipantBanned($0) }
|
||||
dict[-1933187430] = { return Api.ChannelParticipant.parse_channelParticipantKicked($0) }
|
||||
dict[573315206] = { return Api.ChannelParticipant.parse_channelParticipantBanned($0) }
|
||||
dict[471043349] = { return Api.contacts.Blocked.parse_blocked($0) }
|
||||
dict[-1878523231] = { return Api.contacts.Blocked.parse_blockedSlice($0) }
|
||||
dict[-994444869] = { return Api.Error.parse_error($0) }
|
||||
@ -7055,8 +7054,7 @@ public struct Api {
|
||||
case channelParticipantCreator(userId: Int32)
|
||||
case channelParticipantSelf(userId: Int32, inviterId: Int32, date: Int32)
|
||||
case channelParticipantAdmin(flags: Int32, userId: Int32, inviterId: Int32, promotedBy: Int32, date: Int32, adminRights: Api.ChannelAdminRights)
|
||||
case channelParticipantBanned(userId: Int32, kickedBy: Int32, date: Int32, bannedRights: Api.ChannelBannedRights)
|
||||
case channelParticipantKicked(userId: Int32, kickedBy: Int32, date: Int32)
|
||||
case channelParticipantBanned(flags: Int32, userId: Int32, kickedBy: Int32, date: Int32, bannedRights: Api.ChannelBannedRights)
|
||||
|
||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) -> Swift.Bool {
|
||||
switch self {
|
||||
@ -7092,23 +7090,16 @@ public struct Api {
|
||||
serializeInt32(date, buffer: buffer, boxed: false)
|
||||
adminRights.serialize(buffer, true)
|
||||
break
|
||||
case .channelParticipantBanned(let userId, let kickedBy, let date, let bannedRights):
|
||||
case .channelParticipantBanned(let flags, let userId, let kickedBy, let date, let bannedRights):
|
||||
if boxed {
|
||||
buffer.appendInt32(871546323)
|
||||
buffer.appendInt32(573315206)
|
||||
}
|
||||
serializeInt32(flags, buffer: buffer, boxed: false)
|
||||
serializeInt32(userId, buffer: buffer, boxed: false)
|
||||
serializeInt32(kickedBy, buffer: buffer, boxed: false)
|
||||
serializeInt32(date, buffer: buffer, boxed: false)
|
||||
bannedRights.serialize(buffer, true)
|
||||
break
|
||||
case .channelParticipantKicked(let userId, let kickedBy, let date):
|
||||
if boxed {
|
||||
buffer.appendInt32(-1933187430)
|
||||
}
|
||||
serializeInt32(userId, buffer: buffer, boxed: false)
|
||||
serializeInt32(kickedBy, buffer: buffer, boxed: false)
|
||||
serializeInt32(date, buffer: buffer, boxed: false)
|
||||
break
|
||||
}
|
||||
return true
|
||||
}
|
||||
@ -7190,33 +7181,19 @@ public struct Api {
|
||||
_2 = reader.readInt32()
|
||||
var _3: Int32?
|
||||
_3 = reader.readInt32()
|
||||
var _4: Api.ChannelBannedRights?
|
||||
var _4: Int32?
|
||||
_4 = reader.readInt32()
|
||||
var _5: Api.ChannelBannedRights?
|
||||
if let signature = reader.readInt32() {
|
||||
_4 = Api.parse(reader, signature: signature) as? Api.ChannelBannedRights
|
||||
_5 = Api.parse(reader, signature: signature) as? Api.ChannelBannedRights
|
||||
}
|
||||
let _c1 = _1 != nil
|
||||
let _c2 = _2 != nil
|
||||
let _c3 = _3 != nil
|
||||
let _c4 = _4 != nil
|
||||
if _c1 && _c2 && _c3 && _c4 {
|
||||
return Api.ChannelParticipant.channelParticipantBanned(userId: _1!, kickedBy: _2!, date: _3!, bannedRights: _4!)
|
||||
}
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
fileprivate static func parse_channelParticipantKicked(_ reader: BufferReader) -> ChannelParticipant? {
|
||||
var _1: Int32?
|
||||
_1 = reader.readInt32()
|
||||
var _2: Int32?
|
||||
_2 = reader.readInt32()
|
||||
var _3: Int32?
|
||||
_3 = reader.readInt32()
|
||||
let _c1 = _1 != nil
|
||||
let _c2 = _2 != nil
|
||||
let _c3 = _3 != nil
|
||||
if _c1 && _c2 && _c3 {
|
||||
return Api.ChannelParticipant.channelParticipantKicked(userId: _1!, kickedBy: _2!, date: _3!)
|
||||
let _c5 = _5 != nil
|
||||
if _c1 && _c2 && _c3 && _c4 && _c5 {
|
||||
return Api.ChannelParticipant.channelParticipantBanned(flags: _1!, userId: _2!, kickedBy: _3!, date: _4!, bannedRights: _5!)
|
||||
}
|
||||
else {
|
||||
return nil
|
||||
@ -7234,10 +7211,8 @@ public struct Api {
|
||||
return "(channelParticipantSelf userId: \(userId), inviterId: \(inviterId), date: \(date))"
|
||||
case .channelParticipantAdmin(let flags, let userId, let inviterId, let promotedBy, let date, let adminRights):
|
||||
return "(channelParticipantAdmin flags: \(flags), userId: \(userId), inviterId: \(inviterId), promotedBy: \(promotedBy), date: \(date), adminRights: \(adminRights))"
|
||||
case .channelParticipantBanned(let userId, let kickedBy, let date, let bannedRights):
|
||||
return "(channelParticipantBanned userId: \(userId), kickedBy: \(kickedBy), date: \(date), bannedRights: \(bannedRights))"
|
||||
case .channelParticipantKicked(let userId, let kickedBy, let date):
|
||||
return "(channelParticipantKicked userId: \(userId), kickedBy: \(kickedBy), date: \(date))"
|
||||
case .channelParticipantBanned(let flags, let userId, let kickedBy, let date, let bannedRights):
|
||||
return "(channelParticipantBanned flags: \(flags), userId: \(userId), kickedBy: \(kickedBy), date: \(date), bannedRights: \(bannedRights))"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,24 +43,28 @@ public struct ChannelParticipantAdminInfo: Coding, Equatable {
|
||||
public struct ChannelParticipantBannedInfo: Coding, Equatable {
|
||||
public let rights: TelegramChannelBannedRights
|
||||
public let restrictedBy: PeerId
|
||||
public let isMember: Bool
|
||||
|
||||
public init(rights: TelegramChannelBannedRights, restrictedBy: PeerId) {
|
||||
public init(rights: TelegramChannelBannedRights, restrictedBy: PeerId, isMember: Bool) {
|
||||
self.rights = rights
|
||||
self.restrictedBy = restrictedBy
|
||||
self.isMember = isMember
|
||||
}
|
||||
|
||||
public init(decoder: Decoder) {
|
||||
self.rights = decoder.decodeObjectForKey("r", decoder: { TelegramChannelBannedRights(decoder: $0) }) as! TelegramChannelBannedRights
|
||||
self.restrictedBy = PeerId(decoder.decodeInt64ForKey("p", orElse: 0))
|
||||
self.isMember = decoder.decodeInt32ForKey("m", orElse: 0) != 0
|
||||
}
|
||||
|
||||
public func encode(_ encoder: Encoder) {
|
||||
encoder.encodeObject(self.rights, forKey: "r")
|
||||
encoder.encodeInt64(self.restrictedBy.toInt64(), forKey: "p")
|
||||
encoder.encodeInt32(self.isMember ? 1 : 0, forKey: "m")
|
||||
}
|
||||
|
||||
public static func ==(lhs: ChannelParticipantBannedInfo, rhs: ChannelParticipantBannedInfo) -> Bool {
|
||||
return lhs.rights == rhs.rights && lhs.restrictedBy == rhs.restrictedBy
|
||||
return lhs.rights == rhs.rights && lhs.restrictedBy == rhs.restrictedBy && lhs.isMember == rhs.isMember
|
||||
}
|
||||
}
|
||||
|
||||
@ -168,11 +172,9 @@ extension ChannelParticipant {
|
||||
self = .member(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), invitedAt: date, adminInfo: nil, banInfo: nil)
|
||||
case let .channelParticipantCreator(userId):
|
||||
self = .creator(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId))
|
||||
case let .channelParticipantKicked(userId, restrictedBy, date):
|
||||
let banInfo = ChannelParticipantBannedInfo(rights: TelegramChannelBannedRights(flags: [.banReadMessages], untilDate: Int32.max), restrictedBy: PeerId(namespace: Namespaces.Peer.CloudUser, id: restrictedBy))
|
||||
self = .member(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), invitedAt: date, adminInfo: nil, banInfo: banInfo)
|
||||
case let .channelParticipantBanned(userId, restrictedBy, date, bannedRights):
|
||||
let banInfo = ChannelParticipantBannedInfo(rights: TelegramChannelBannedRights(apiBannedRights: bannedRights), restrictedBy: PeerId(namespace: Namespaces.Peer.CloudUser, id: restrictedBy))
|
||||
case let .channelParticipantBanned(flags, userId, restrictedBy, date, bannedRights):
|
||||
let hasLeft = (flags & (1 << 0)) != 0
|
||||
let banInfo = ChannelParticipantBannedInfo(rights: TelegramChannelBannedRights(apiBannedRights: bannedRights), restrictedBy: PeerId(namespace: Namespaces.Peer.CloudUser, id: restrictedBy), isMember: !hasLeft)
|
||||
self = .member(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), invitedAt: date, adminInfo: nil, banInfo: banInfo)
|
||||
case let .channelParticipantAdmin(flags, userId, _, promotedBy, date, adminRights):
|
||||
self = .member(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), invitedAt: date, adminInfo: ChannelParticipantAdminInfo(rights: TelegramChannelAdminRights(apiAdminRights: adminRights), promotedBy: PeerId(namespace: Namespaces.Peer.CloudUser, id: promotedBy), canBeEditedByAccountPeer: (flags & (1 << 0)) != 0), banInfo: nil)
|
||||
|
Loading…
x
Reference in New Issue
Block a user