mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Update API
This commit is contained in:
parent
ea1598e4a6
commit
cda0334a8b
@ -52,7 +52,7 @@ public class InvisibleInkDustView: UIView {
|
|||||||
private var animColor: CGColor?
|
private var animColor: CGColor?
|
||||||
private let enableAnimations: Bool
|
private let enableAnimations: Bool
|
||||||
|
|
||||||
private weak var textNode: TextNode?
|
private weak var textNode: ASDisplayNode?
|
||||||
private let textMaskNode: ASDisplayNode
|
private let textMaskNode: ASDisplayNode
|
||||||
private let textSpotNode: ASImageNode
|
private let textSpotNode: ASImageNode
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ public class InvisibleInkDustView: UIView {
|
|||||||
public var isRevealed = false
|
public var isRevealed = false
|
||||||
private var isExploding = false
|
private var isExploding = false
|
||||||
|
|
||||||
public init(textNode: TextNode?, enableAnimations: Bool) {
|
public init(textNode: ASDisplayNode?, enableAnimations: Bool) {
|
||||||
self.textNode = textNode
|
self.textNode = textNode
|
||||||
self.enableAnimations = enableAnimations
|
self.enableAnimations = enableAnimations
|
||||||
|
|
||||||
@ -368,7 +368,7 @@ public class InvisibleInkDustNode: ASDisplayNode {
|
|||||||
private var animColor: CGColor?
|
private var animColor: CGColor?
|
||||||
private let enableAnimations: Bool
|
private let enableAnimations: Bool
|
||||||
|
|
||||||
private weak var textNode: TextNode?
|
private weak var textNode: ASDisplayNode?
|
||||||
private let textMaskNode: ASDisplayNode
|
private let textMaskNode: ASDisplayNode
|
||||||
private let textSpotNode: ASImageNode
|
private let textSpotNode: ASImageNode
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ public class InvisibleInkDustNode: ASDisplayNode {
|
|||||||
public var isRevealed = false
|
public var isRevealed = false
|
||||||
private var isExploding = false
|
private var isExploding = false
|
||||||
|
|
||||||
public init(textNode: TextNode?, enableAnimations: Bool) {
|
public init(textNode: ASDisplayNode?, enableAnimations: Bool) {
|
||||||
self.textNode = textNode
|
self.textNode = textNode
|
||||||
self.enableAnimations = enableAnimations
|
self.enableAnimations = enableAnimations
|
||||||
|
|
||||||
|
@ -564,7 +564,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
|
|||||||
dict[1205698681] = { return Api.MessageAction.parse_messageActionWebViewDataSentMe($0) }
|
dict[1205698681] = { return Api.MessageAction.parse_messageActionWebViewDataSentMe($0) }
|
||||||
dict[546203849] = { return Api.MessageEntity.parse_inputMessageEntityMentionName($0) }
|
dict[546203849] = { return Api.MessageEntity.parse_inputMessageEntityMentionName($0) }
|
||||||
dict[1981704948] = { return Api.MessageEntity.parse_messageEntityBankCard($0) }
|
dict[1981704948] = { return Api.MessageEntity.parse_messageEntityBankCard($0) }
|
||||||
dict[34469328] = { return Api.MessageEntity.parse_messageEntityBlockquote($0) }
|
dict[-238245204] = { return Api.MessageEntity.parse_messageEntityBlockquote($0) }
|
||||||
dict[-1117713463] = { return Api.MessageEntity.parse_messageEntityBold($0) }
|
dict[-1117713463] = { return Api.MessageEntity.parse_messageEntityBold($0) }
|
||||||
dict[1827637959] = { return Api.MessageEntity.parse_messageEntityBotCommand($0) }
|
dict[1827637959] = { return Api.MessageEntity.parse_messageEntityBotCommand($0) }
|
||||||
dict[1280209983] = { return Api.MessageEntity.parse_messageEntityCashtag($0) }
|
dict[1280209983] = { return Api.MessageEntity.parse_messageEntityCashtag($0) }
|
||||||
@ -875,6 +875,8 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
|
|||||||
dict[-1269320843] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerAppStore($0) }
|
dict[-1269320843] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerAppStore($0) }
|
||||||
dict[-382740222] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerFragment($0) }
|
dict[-382740222] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerFragment($0) }
|
||||||
dict[2069236235] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerPlayMarket($0) }
|
dict[2069236235] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerPlayMarket($0) }
|
||||||
|
dict[621656824] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerPremiumBot($0) }
|
||||||
|
dict[-1779253276] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerUnsupported($0) }
|
||||||
dict[-884757282] = { return Api.StatsAbsValueAndPrev.parse_statsAbsValueAndPrev($0) }
|
dict[-884757282] = { return Api.StatsAbsValueAndPrev.parse_statsAbsValueAndPrev($0) }
|
||||||
dict[-1237848657] = { return Api.StatsDateRangeDays.parse_statsDateRangeDays($0) }
|
dict[-1237848657] = { return Api.StatsDateRangeDays.parse_statsDateRangeDays($0) }
|
||||||
dict[-1901828938] = { return Api.StatsGraph.parse_statsGraph($0) }
|
dict[-1901828938] = { return Api.StatsGraph.parse_statsGraph($0) }
|
||||||
@ -1377,7 +1379,7 @@ public extension Api {
|
|||||||
return parser(reader)
|
return parser(reader)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
telegramApiLog("Type constructor \(String(signature, radix: 16, uppercase: false)) not found")
|
telegramApiLog("Type constructor \(String(UInt32(bitPattern: signature), radix: 16, uppercase: false)) not found")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ public extension Api {
|
|||||||
indirect enum MessageEntity: TypeConstructorDescription {
|
indirect enum MessageEntity: TypeConstructorDescription {
|
||||||
case inputMessageEntityMentionName(offset: Int32, length: Int32, userId: Api.InputUser)
|
case inputMessageEntityMentionName(offset: Int32, length: Int32, userId: Api.InputUser)
|
||||||
case messageEntityBankCard(offset: Int32, length: Int32)
|
case messageEntityBankCard(offset: Int32, length: Int32)
|
||||||
case messageEntityBlockquote(offset: Int32, length: Int32)
|
case messageEntityBlockquote(flags: Int32, offset: Int32, length: Int32)
|
||||||
case messageEntityBold(offset: Int32, length: Int32)
|
case messageEntityBold(offset: Int32, length: Int32)
|
||||||
case messageEntityBotCommand(offset: Int32, length: Int32)
|
case messageEntityBotCommand(offset: Int32, length: Int32)
|
||||||
case messageEntityCashtag(offset: Int32, length: Int32)
|
case messageEntityCashtag(offset: Int32, length: Int32)
|
||||||
@ -39,10 +39,11 @@ public extension Api {
|
|||||||
serializeInt32(offset, buffer: buffer, boxed: false)
|
serializeInt32(offset, buffer: buffer, boxed: false)
|
||||||
serializeInt32(length, buffer: buffer, boxed: false)
|
serializeInt32(length, buffer: buffer, boxed: false)
|
||||||
break
|
break
|
||||||
case .messageEntityBlockquote(let offset, let length):
|
case .messageEntityBlockquote(let flags, let offset, let length):
|
||||||
if boxed {
|
if boxed {
|
||||||
buffer.appendInt32(34469328)
|
buffer.appendInt32(-238245204)
|
||||||
}
|
}
|
||||||
|
serializeInt32(flags, buffer: buffer, boxed: false)
|
||||||
serializeInt32(offset, buffer: buffer, boxed: false)
|
serializeInt32(offset, buffer: buffer, boxed: false)
|
||||||
serializeInt32(length, buffer: buffer, boxed: false)
|
serializeInt32(length, buffer: buffer, boxed: false)
|
||||||
break
|
break
|
||||||
@ -185,8 +186,8 @@ public extension Api {
|
|||||||
return ("inputMessageEntityMentionName", [("offset", offset as Any), ("length", length as Any), ("userId", userId as Any)])
|
return ("inputMessageEntityMentionName", [("offset", offset as Any), ("length", length as Any), ("userId", userId as Any)])
|
||||||
case .messageEntityBankCard(let offset, let length):
|
case .messageEntityBankCard(let offset, let length):
|
||||||
return ("messageEntityBankCard", [("offset", offset as Any), ("length", length as Any)])
|
return ("messageEntityBankCard", [("offset", offset as Any), ("length", length as Any)])
|
||||||
case .messageEntityBlockquote(let offset, let length):
|
case .messageEntityBlockquote(let flags, let offset, let length):
|
||||||
return ("messageEntityBlockquote", [("offset", offset as Any), ("length", length as Any)])
|
return ("messageEntityBlockquote", [("flags", flags as Any), ("offset", offset as Any), ("length", length as Any)])
|
||||||
case .messageEntityBold(let offset, let length):
|
case .messageEntityBold(let offset, let length):
|
||||||
return ("messageEntityBold", [("offset", offset as Any), ("length", length as Any)])
|
return ("messageEntityBold", [("offset", offset as Any), ("length", length as Any)])
|
||||||
case .messageEntityBotCommand(let offset, let length):
|
case .messageEntityBotCommand(let offset, let length):
|
||||||
@ -264,10 +265,13 @@ public extension Api {
|
|||||||
_1 = reader.readInt32()
|
_1 = reader.readInt32()
|
||||||
var _2: Int32?
|
var _2: Int32?
|
||||||
_2 = reader.readInt32()
|
_2 = reader.readInt32()
|
||||||
|
var _3: Int32?
|
||||||
|
_3 = reader.readInt32()
|
||||||
let _c1 = _1 != nil
|
let _c1 = _1 != nil
|
||||||
let _c2 = _2 != nil
|
let _c2 = _2 != nil
|
||||||
if _c1 && _c2 {
|
let _c3 = _3 != nil
|
||||||
return Api.MessageEntity.messageEntityBlockquote(offset: _1!, length: _2!)
|
if _c1 && _c2 && _c3 {
|
||||||
|
return Api.MessageEntity.messageEntityBlockquote(flags: _1!, offset: _2!, length: _3!)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return nil
|
return nil
|
||||||
|
@ -710,6 +710,8 @@ public extension Api {
|
|||||||
case starsTransactionPeerAppStore
|
case starsTransactionPeerAppStore
|
||||||
case starsTransactionPeerFragment
|
case starsTransactionPeerFragment
|
||||||
case starsTransactionPeerPlayMarket
|
case starsTransactionPeerPlayMarket
|
||||||
|
case starsTransactionPeerPremiumBot
|
||||||
|
case starsTransactionPeerUnsupported
|
||||||
|
|
||||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||||
switch self {
|
switch self {
|
||||||
@ -736,6 +738,18 @@ public extension Api {
|
|||||||
buffer.appendInt32(2069236235)
|
buffer.appendInt32(2069236235)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
case .starsTransactionPeerPremiumBot:
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(621656824)
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
case .starsTransactionPeerUnsupported:
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(-1779253276)
|
||||||
|
}
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -750,6 +764,10 @@ public extension Api {
|
|||||||
return ("starsTransactionPeerFragment", [])
|
return ("starsTransactionPeerFragment", [])
|
||||||
case .starsTransactionPeerPlayMarket:
|
case .starsTransactionPeerPlayMarket:
|
||||||
return ("starsTransactionPeerPlayMarket", [])
|
return ("starsTransactionPeerPlayMarket", [])
|
||||||
|
case .starsTransactionPeerPremiumBot:
|
||||||
|
return ("starsTransactionPeerPremiumBot", [])
|
||||||
|
case .starsTransactionPeerUnsupported:
|
||||||
|
return ("starsTransactionPeerUnsupported", [])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -775,85 +793,11 @@ public extension Api {
|
|||||||
public static func parse_starsTransactionPeerPlayMarket(_ reader: BufferReader) -> StarsTransactionPeer? {
|
public static func parse_starsTransactionPeerPlayMarket(_ reader: BufferReader) -> StarsTransactionPeer? {
|
||||||
return Api.StarsTransactionPeer.starsTransactionPeerPlayMarket
|
return Api.StarsTransactionPeer.starsTransactionPeerPlayMarket
|
||||||
}
|
}
|
||||||
|
public static func parse_starsTransactionPeerPremiumBot(_ reader: BufferReader) -> StarsTransactionPeer? {
|
||||||
}
|
return Api.StarsTransactionPeer.starsTransactionPeerPremiumBot
|
||||||
}
|
|
||||||
public extension Api {
|
|
||||||
enum StatsAbsValueAndPrev: TypeConstructorDescription {
|
|
||||||
case statsAbsValueAndPrev(current: Double, previous: Double)
|
|
||||||
|
|
||||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
|
||||||
switch self {
|
|
||||||
case .statsAbsValueAndPrev(let current, let previous):
|
|
||||||
if boxed {
|
|
||||||
buffer.appendInt32(-884757282)
|
|
||||||
}
|
|
||||||
serializeDouble(current, buffer: buffer, boxed: false)
|
|
||||||
serializeDouble(previous, buffer: buffer, boxed: false)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func descriptionFields() -> (String, [(String, Any)]) {
|
|
||||||
switch self {
|
|
||||||
case .statsAbsValueAndPrev(let current, let previous):
|
|
||||||
return ("statsAbsValueAndPrev", [("current", current as Any), ("previous", previous as Any)])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func parse_statsAbsValueAndPrev(_ reader: BufferReader) -> StatsAbsValueAndPrev? {
|
|
||||||
var _1: Double?
|
|
||||||
_1 = reader.readDouble()
|
|
||||||
var _2: Double?
|
|
||||||
_2 = reader.readDouble()
|
|
||||||
let _c1 = _1 != nil
|
|
||||||
let _c2 = _2 != nil
|
|
||||||
if _c1 && _c2 {
|
|
||||||
return Api.StatsAbsValueAndPrev.statsAbsValueAndPrev(current: _1!, previous: _2!)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public extension Api {
|
|
||||||
enum StatsDateRangeDays: TypeConstructorDescription {
|
|
||||||
case statsDateRangeDays(minDate: Int32, maxDate: Int32)
|
|
||||||
|
|
||||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
|
||||||
switch self {
|
|
||||||
case .statsDateRangeDays(let minDate, let maxDate):
|
|
||||||
if boxed {
|
|
||||||
buffer.appendInt32(-1237848657)
|
|
||||||
}
|
|
||||||
serializeInt32(minDate, buffer: buffer, boxed: false)
|
|
||||||
serializeInt32(maxDate, buffer: buffer, boxed: false)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func descriptionFields() -> (String, [(String, Any)]) {
|
|
||||||
switch self {
|
|
||||||
case .statsDateRangeDays(let minDate, let maxDate):
|
|
||||||
return ("statsDateRangeDays", [("minDate", minDate as Any), ("maxDate", maxDate as Any)])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func parse_statsDateRangeDays(_ reader: BufferReader) -> StatsDateRangeDays? {
|
|
||||||
var _1: Int32?
|
|
||||||
_1 = reader.readInt32()
|
|
||||||
var _2: Int32?
|
|
||||||
_2 = reader.readInt32()
|
|
||||||
let _c1 = _1 != nil
|
|
||||||
let _c2 = _2 != nil
|
|
||||||
if _c1 && _c2 {
|
|
||||||
return Api.StatsDateRangeDays.statsDateRangeDays(minDate: _1!, maxDate: _2!)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
public static func parse_starsTransactionPeerUnsupported(_ reader: BufferReader) -> StarsTransactionPeer? {
|
||||||
|
return Api.StarsTransactionPeer.starsTransactionPeerUnsupported
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,83 @@
|
|||||||
|
public extension Api {
|
||||||
|
enum StatsAbsValueAndPrev: TypeConstructorDescription {
|
||||||
|
case statsAbsValueAndPrev(current: Double, previous: Double)
|
||||||
|
|
||||||
|
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||||
|
switch self {
|
||||||
|
case .statsAbsValueAndPrev(let current, let previous):
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(-884757282)
|
||||||
|
}
|
||||||
|
serializeDouble(current, buffer: buffer, boxed: false)
|
||||||
|
serializeDouble(previous, buffer: buffer, boxed: false)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func descriptionFields() -> (String, [(String, Any)]) {
|
||||||
|
switch self {
|
||||||
|
case .statsAbsValueAndPrev(let current, let previous):
|
||||||
|
return ("statsAbsValueAndPrev", [("current", current as Any), ("previous", previous as Any)])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func parse_statsAbsValueAndPrev(_ reader: BufferReader) -> StatsAbsValueAndPrev? {
|
||||||
|
var _1: Double?
|
||||||
|
_1 = reader.readDouble()
|
||||||
|
var _2: Double?
|
||||||
|
_2 = reader.readDouble()
|
||||||
|
let _c1 = _1 != nil
|
||||||
|
let _c2 = _2 != nil
|
||||||
|
if _c1 && _c2 {
|
||||||
|
return Api.StatsAbsValueAndPrev.statsAbsValueAndPrev(current: _1!, previous: _2!)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public extension Api {
|
||||||
|
enum StatsDateRangeDays: TypeConstructorDescription {
|
||||||
|
case statsDateRangeDays(minDate: Int32, maxDate: Int32)
|
||||||
|
|
||||||
|
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||||
|
switch self {
|
||||||
|
case .statsDateRangeDays(let minDate, let maxDate):
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(-1237848657)
|
||||||
|
}
|
||||||
|
serializeInt32(minDate, buffer: buffer, boxed: false)
|
||||||
|
serializeInt32(maxDate, buffer: buffer, boxed: false)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func descriptionFields() -> (String, [(String, Any)]) {
|
||||||
|
switch self {
|
||||||
|
case .statsDateRangeDays(let minDate, let maxDate):
|
||||||
|
return ("statsDateRangeDays", [("minDate", minDate as Any), ("maxDate", maxDate as Any)])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func parse_statsDateRangeDays(_ reader: BufferReader) -> StatsDateRangeDays? {
|
||||||
|
var _1: Int32?
|
||||||
|
_1 = reader.readInt32()
|
||||||
|
var _2: Int32?
|
||||||
|
_2 = reader.readInt32()
|
||||||
|
let _c1 = _1 != nil
|
||||||
|
let _c2 = _2 != nil
|
||||||
|
if _c1 && _c2 {
|
||||||
|
return Api.StatsDateRangeDays.statsDateRangeDays(minDate: _1!, maxDate: _2!)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
public extension Api {
|
public extension Api {
|
||||||
enum StatsGraph: TypeConstructorDescription {
|
enum StatsGraph: TypeConstructorDescription {
|
||||||
case statsGraph(flags: Int32, json: Api.DataJSON, zoomToken: String?)
|
case statsGraph(flags: Int32, json: Api.DataJSON, zoomToken: String?)
|
||||||
@ -1340,89 +1420,3 @@ public extension Api {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public extension Api {
|
|
||||||
enum Timezone: TypeConstructorDescription {
|
|
||||||
case timezone(id: String, name: String, utcOffset: Int32)
|
|
||||||
|
|
||||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
|
||||||
switch self {
|
|
||||||
case .timezone(let id, let name, let utcOffset):
|
|
||||||
if boxed {
|
|
||||||
buffer.appendInt32(-7173643)
|
|
||||||
}
|
|
||||||
serializeString(id, buffer: buffer, boxed: false)
|
|
||||||
serializeString(name, buffer: buffer, boxed: false)
|
|
||||||
serializeInt32(utcOffset, buffer: buffer, boxed: false)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func descriptionFields() -> (String, [(String, Any)]) {
|
|
||||||
switch self {
|
|
||||||
case .timezone(let id, let name, let utcOffset):
|
|
||||||
return ("timezone", [("id", id as Any), ("name", name as Any), ("utcOffset", utcOffset as Any)])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func parse_timezone(_ reader: BufferReader) -> Timezone? {
|
|
||||||
var _1: String?
|
|
||||||
_1 = parseString(reader)
|
|
||||||
var _2: String?
|
|
||||||
_2 = parseString(reader)
|
|
||||||
var _3: Int32?
|
|
||||||
_3 = reader.readInt32()
|
|
||||||
let _c1 = _1 != nil
|
|
||||||
let _c2 = _2 != nil
|
|
||||||
let _c3 = _3 != nil
|
|
||||||
if _c1 && _c2 && _c3 {
|
|
||||||
return Api.Timezone.timezone(id: _1!, name: _2!, utcOffset: _3!)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public extension Api {
|
|
||||||
enum TopPeer: TypeConstructorDescription {
|
|
||||||
case topPeer(peer: Api.Peer, rating: Double)
|
|
||||||
|
|
||||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
|
||||||
switch self {
|
|
||||||
case .topPeer(let peer, let rating):
|
|
||||||
if boxed {
|
|
||||||
buffer.appendInt32(-305282981)
|
|
||||||
}
|
|
||||||
peer.serialize(buffer, true)
|
|
||||||
serializeDouble(rating, buffer: buffer, boxed: false)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func descriptionFields() -> (String, [(String, Any)]) {
|
|
||||||
switch self {
|
|
||||||
case .topPeer(let peer, let rating):
|
|
||||||
return ("topPeer", [("peer", peer as Any), ("rating", rating as Any)])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func parse_topPeer(_ reader: BufferReader) -> TopPeer? {
|
|
||||||
var _1: Api.Peer?
|
|
||||||
if let signature = reader.readInt32() {
|
|
||||||
_1 = Api.parse(reader, signature: signature) as? Api.Peer
|
|
||||||
}
|
|
||||||
var _2: Double?
|
|
||||||
_2 = reader.readDouble()
|
|
||||||
let _c1 = _1 != nil
|
|
||||||
let _c2 = _2 != nil
|
|
||||||
if _c1 && _c2 {
|
|
||||||
return Api.TopPeer.topPeer(peer: _1!, rating: _2!)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,3 +1,89 @@
|
|||||||
|
public extension Api {
|
||||||
|
enum Timezone: TypeConstructorDescription {
|
||||||
|
case timezone(id: String, name: String, utcOffset: Int32)
|
||||||
|
|
||||||
|
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||||
|
switch self {
|
||||||
|
case .timezone(let id, let name, let utcOffset):
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(-7173643)
|
||||||
|
}
|
||||||
|
serializeString(id, buffer: buffer, boxed: false)
|
||||||
|
serializeString(name, buffer: buffer, boxed: false)
|
||||||
|
serializeInt32(utcOffset, buffer: buffer, boxed: false)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func descriptionFields() -> (String, [(String, Any)]) {
|
||||||
|
switch self {
|
||||||
|
case .timezone(let id, let name, let utcOffset):
|
||||||
|
return ("timezone", [("id", id as Any), ("name", name as Any), ("utcOffset", utcOffset as Any)])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func parse_timezone(_ reader: BufferReader) -> Timezone? {
|
||||||
|
var _1: String?
|
||||||
|
_1 = parseString(reader)
|
||||||
|
var _2: String?
|
||||||
|
_2 = parseString(reader)
|
||||||
|
var _3: Int32?
|
||||||
|
_3 = reader.readInt32()
|
||||||
|
let _c1 = _1 != nil
|
||||||
|
let _c2 = _2 != nil
|
||||||
|
let _c3 = _3 != nil
|
||||||
|
if _c1 && _c2 && _c3 {
|
||||||
|
return Api.Timezone.timezone(id: _1!, name: _2!, utcOffset: _3!)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public extension Api {
|
||||||
|
enum TopPeer: TypeConstructorDescription {
|
||||||
|
case topPeer(peer: Api.Peer, rating: Double)
|
||||||
|
|
||||||
|
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||||
|
switch self {
|
||||||
|
case .topPeer(let peer, let rating):
|
||||||
|
if boxed {
|
||||||
|
buffer.appendInt32(-305282981)
|
||||||
|
}
|
||||||
|
peer.serialize(buffer, true)
|
||||||
|
serializeDouble(rating, buffer: buffer, boxed: false)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func descriptionFields() -> (String, [(String, Any)]) {
|
||||||
|
switch self {
|
||||||
|
case .topPeer(let peer, let rating):
|
||||||
|
return ("topPeer", [("peer", peer as Any), ("rating", rating as Any)])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func parse_topPeer(_ reader: BufferReader) -> TopPeer? {
|
||||||
|
var _1: Api.Peer?
|
||||||
|
if let signature = reader.readInt32() {
|
||||||
|
_1 = Api.parse(reader, signature: signature) as? Api.Peer
|
||||||
|
}
|
||||||
|
var _2: Double?
|
||||||
|
_2 = reader.readDouble()
|
||||||
|
let _c1 = _1 != nil
|
||||||
|
let _c2 = _2 != nil
|
||||||
|
if _c1 && _c2 {
|
||||||
|
return Api.TopPeer.topPeer(peer: _1!, rating: _2!)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
public extension Api {
|
public extension Api {
|
||||||
enum TopPeerCategory: TypeConstructorDescription {
|
enum TopPeerCategory: TypeConstructorDescription {
|
||||||
case topPeerCategoryBotsInline
|
case topPeerCategoryBotsInline
|
||||||
|
@ -593,8 +593,8 @@ func messageTextEntitiesFromApiEntities(_ entities: [Api.MessageEntity]) -> [Mes
|
|||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||||
case let .messageEntityStrike(offset, length):
|
case let .messageEntityStrike(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Strikethrough))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Strikethrough))
|
||||||
case let .messageEntityBlockquote(offset, length):
|
case let .messageEntityBlockquote(flags, offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote(isCollapsed: (flags & (1 << 0)) != 0)))
|
||||||
case let .messageEntityBankCard(offset, length):
|
case let .messageEntityBankCard(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BankCard))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BankCard))
|
||||||
case let .messageEntitySpoiler(offset, length):
|
case let .messageEntitySpoiler(offset, length):
|
||||||
|
@ -40,8 +40,12 @@ func apiEntitiesFromMessageTextEntities(_ entities: [MessageTextEntity], associa
|
|||||||
break
|
break
|
||||||
case .Strikethrough:
|
case .Strikethrough:
|
||||||
apiEntities.append(.messageEntityStrike(offset: offset, length: length))
|
apiEntities.append(.messageEntityStrike(offset: offset, length: length))
|
||||||
case .BlockQuote:
|
case let .BlockQuote(isCollapsed):
|
||||||
apiEntities.append(.messageEntityBlockquote(offset: offset, length: length))
|
var flags: Int32 = 0
|
||||||
|
if isCollapsed {
|
||||||
|
flags |= 1 << 0
|
||||||
|
}
|
||||||
|
apiEntities.append(.messageEntityBlockquote(flags: flags, offset: offset, length: length))
|
||||||
case .Underline:
|
case .Underline:
|
||||||
apiEntities.append(.messageEntityUnderline(offset: offset, length: length))
|
apiEntities.append(.messageEntityUnderline(offset: offset, length: length))
|
||||||
case .BankCard:
|
case .BankCard:
|
||||||
|
@ -1186,7 +1186,7 @@ private func parseEntities(_ entities: [SecretApi101.MessageEntity]) -> TextEnti
|
|||||||
case let .messageEntityUnderline(offset, length):
|
case let .messageEntityUnderline(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||||
case let .messageEntityBlockquote(offset, length):
|
case let .messageEntityBlockquote(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote(isCollapsed: false)))
|
||||||
case .messageEntityUnknown:
|
case .messageEntityUnknown:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -1223,7 +1223,7 @@ private func parseEntities(_ entities: [SecretApi144.MessageEntity]) -> TextEnti
|
|||||||
case let .messageEntityUnderline(offset, length):
|
case let .messageEntityUnderline(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||||
case let .messageEntityBlockquote(offset, length):
|
case let .messageEntityBlockquote(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote(isCollapsed: false)))
|
||||||
case let .messageEntitySpoiler(offset, length):
|
case let .messageEntitySpoiler(offset, length):
|
||||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Spoiler))
|
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Spoiler))
|
||||||
case let .messageEntityCustomEmoji(offset, length, documentId):
|
case let .messageEntityCustomEmoji(offset, length, documentId):
|
||||||
|
@ -18,7 +18,7 @@ public enum MessageTextEntityType: Equatable {
|
|||||||
case TextMention(peerId: PeerId)
|
case TextMention(peerId: PeerId)
|
||||||
case PhoneNumber
|
case PhoneNumber
|
||||||
case Strikethrough
|
case Strikethrough
|
||||||
case BlockQuote
|
case BlockQuote(isCollapsed: Bool)
|
||||||
case Underline
|
case Underline
|
||||||
case BankCard
|
case BankCard
|
||||||
case Spoiler
|
case Spoiler
|
||||||
@ -66,7 +66,7 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
|||||||
case 13:
|
case 13:
|
||||||
self.type = .Strikethrough
|
self.type = .Strikethrough
|
||||||
case 14:
|
case 14:
|
||||||
self.type = .BlockQuote
|
self.type = .BlockQuote(isCollapsed: decoder.decodeBoolForKey("cl", orElse: false))
|
||||||
case 15:
|
case 15:
|
||||||
self.type = .Underline
|
self.type = .Underline
|
||||||
case 16:
|
case 16:
|
||||||
@ -124,7 +124,7 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
|||||||
case 13:
|
case 13:
|
||||||
self.type = .Strikethrough
|
self.type = .Strikethrough
|
||||||
case 14:
|
case 14:
|
||||||
self.type = .BlockQuote
|
self.type = .BlockQuote(isCollapsed: try container.decodeIfPresent(Bool.self, forKey: "cl") ?? false)
|
||||||
case 15:
|
case 15:
|
||||||
self.type = .Underline
|
self.type = .Underline
|
||||||
case 16:
|
case 16:
|
||||||
@ -180,8 +180,9 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
|||||||
encoder.encodeInt32(12, forKey: "_rawValue")
|
encoder.encodeInt32(12, forKey: "_rawValue")
|
||||||
case .Strikethrough:
|
case .Strikethrough:
|
||||||
encoder.encodeInt32(13, forKey: "_rawValue")
|
encoder.encodeInt32(13, forKey: "_rawValue")
|
||||||
case .BlockQuote:
|
case let .BlockQuote(isCollapsed):
|
||||||
encoder.encodeInt32(14, forKey: "_rawValue")
|
encoder.encodeInt32(14, forKey: "_rawValue")
|
||||||
|
encoder.encodeBool(isCollapsed, forKey: "cl")
|
||||||
case .Underline:
|
case .Underline:
|
||||||
encoder.encodeInt32(15, forKey: "_rawValue")
|
encoder.encodeInt32(15, forKey: "_rawValue")
|
||||||
case .BankCard:
|
case .BankCard:
|
||||||
@ -239,8 +240,9 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
|||||||
try container.encode(12 as Int32, forKey: "_rawValue")
|
try container.encode(12 as Int32, forKey: "_rawValue")
|
||||||
case .Strikethrough:
|
case .Strikethrough:
|
||||||
try container.encode(13 as Int32, forKey: "_rawValue")
|
try container.encode(13 as Int32, forKey: "_rawValue")
|
||||||
case .BlockQuote:
|
case let .BlockQuote(isCollapsed):
|
||||||
try container.encode(14 as Int32, forKey: "_rawValue")
|
try container.encode(14 as Int32, forKey: "_rawValue")
|
||||||
|
try container.encode(isCollapsed, forKey: "cl")
|
||||||
case .Underline:
|
case .Underline:
|
||||||
try container.encode(15 as Int32, forKey: "_rawValue")
|
try container.encode(15 as Int32, forKey: "_rawValue")
|
||||||
case .BankCard:
|
case .BankCard:
|
||||||
|
@ -230,6 +230,8 @@ private extension StarsContext.State.Transaction {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
parsedPeer = .peer(EnginePeer(peer))
|
parsedPeer = .peer(EnginePeer(peer))
|
||||||
|
case .starsTransactionPeerPremiumBot, .starsTransactionPeerUnsupported:
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
self.init(id: id, count: stars, date: date, peer: parsedPeer)
|
self.init(id: id, count: stars, date: date, peer: parsedPeer)
|
||||||
}
|
}
|
||||||
|
@ -171,7 +171,7 @@ public func generateChatInputTextEntities(_ text: NSAttributedString, maxAnimate
|
|||||||
} else if key == ChatTextInputAttributes.block, let value = value as? ChatTextInputTextQuoteAttribute {
|
} else if key == ChatTextInputAttributes.block, let value = value as? ChatTextInputTextQuoteAttribute {
|
||||||
switch value.kind {
|
switch value.kind {
|
||||||
case .quote:
|
case .quote:
|
||||||
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .BlockQuote))
|
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .BlockQuote(isCollapsed: false)))
|
||||||
case let .code(language):
|
case let .code(language):
|
||||||
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .Pre(language: language)))
|
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .Pre(language: language)))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user