mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-15 21:45:19 +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 let enableAnimations: Bool
|
||||
|
||||
private weak var textNode: TextNode?
|
||||
private weak var textNode: ASDisplayNode?
|
||||
private let textMaskNode: ASDisplayNode
|
||||
private let textSpotNode: ASImageNode
|
||||
|
||||
@ -69,7 +69,7 @@ public class InvisibleInkDustView: UIView {
|
||||
public var isRevealed = false
|
||||
private var isExploding = false
|
||||
|
||||
public init(textNode: TextNode?, enableAnimations: Bool) {
|
||||
public init(textNode: ASDisplayNode?, enableAnimations: Bool) {
|
||||
self.textNode = textNode
|
||||
self.enableAnimations = enableAnimations
|
||||
|
||||
@ -368,7 +368,7 @@ public class InvisibleInkDustNode: ASDisplayNode {
|
||||
private var animColor: CGColor?
|
||||
private let enableAnimations: Bool
|
||||
|
||||
private weak var textNode: TextNode?
|
||||
private weak var textNode: ASDisplayNode?
|
||||
private let textMaskNode: ASDisplayNode
|
||||
private let textSpotNode: ASImageNode
|
||||
|
||||
@ -385,7 +385,7 @@ public class InvisibleInkDustNode: ASDisplayNode {
|
||||
public var isRevealed = false
|
||||
private var isExploding = false
|
||||
|
||||
public init(textNode: TextNode?, enableAnimations: Bool) {
|
||||
public init(textNode: ASDisplayNode?, enableAnimations: Bool) {
|
||||
self.textNode = textNode
|
||||
self.enableAnimations = enableAnimations
|
||||
|
||||
|
@ -564,7 +564,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
|
||||
dict[1205698681] = { return Api.MessageAction.parse_messageActionWebViewDataSentMe($0) }
|
||||
dict[546203849] = { return Api.MessageEntity.parse_inputMessageEntityMentionName($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[1827637959] = { return Api.MessageEntity.parse_messageEntityBotCommand($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[-382740222] = { return Api.StarsTransactionPeer.parse_starsTransactionPeerFragment($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[-1237848657] = { return Api.StatsDateRangeDays.parse_statsDateRangeDays($0) }
|
||||
dict[-1901828938] = { return Api.StatsGraph.parse_statsGraph($0) }
|
||||
@ -1377,7 +1379,7 @@ public extension Api {
|
||||
return parser(reader)
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ public extension Api {
|
||||
indirect enum MessageEntity: TypeConstructorDescription {
|
||||
case inputMessageEntityMentionName(offset: Int32, length: Int32, userId: Api.InputUser)
|
||||
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 messageEntityBotCommand(offset: Int32, length: Int32)
|
||||
case messageEntityCashtag(offset: Int32, length: Int32)
|
||||
@ -39,10 +39,11 @@ public extension Api {
|
||||
serializeInt32(offset, buffer: buffer, boxed: false)
|
||||
serializeInt32(length, buffer: buffer, boxed: false)
|
||||
break
|
||||
case .messageEntityBlockquote(let offset, let length):
|
||||
case .messageEntityBlockquote(let flags, let offset, let length):
|
||||
if boxed {
|
||||
buffer.appendInt32(34469328)
|
||||
buffer.appendInt32(-238245204)
|
||||
}
|
||||
serializeInt32(flags, buffer: buffer, boxed: false)
|
||||
serializeInt32(offset, buffer: buffer, boxed: false)
|
||||
serializeInt32(length, buffer: buffer, boxed: false)
|
||||
break
|
||||
@ -185,8 +186,8 @@ public extension Api {
|
||||
return ("inputMessageEntityMentionName", [("offset", offset as Any), ("length", length as Any), ("userId", userId as Any)])
|
||||
case .messageEntityBankCard(let offset, let length):
|
||||
return ("messageEntityBankCard", [("offset", offset as Any), ("length", length as Any)])
|
||||
case .messageEntityBlockquote(let offset, let length):
|
||||
return ("messageEntityBlockquote", [("offset", offset as Any), ("length", length as Any)])
|
||||
case .messageEntityBlockquote(let flags, let offset, let length):
|
||||
return ("messageEntityBlockquote", [("flags", flags as Any), ("offset", offset as Any), ("length", length as Any)])
|
||||
case .messageEntityBold(let offset, let length):
|
||||
return ("messageEntityBold", [("offset", offset as Any), ("length", length as Any)])
|
||||
case .messageEntityBotCommand(let offset, let length):
|
||||
@ -264,10 +265,13 @@ public extension Api {
|
||||
_1 = reader.readInt32()
|
||||
var _2: Int32?
|
||||
_2 = reader.readInt32()
|
||||
var _3: Int32?
|
||||
_3 = reader.readInt32()
|
||||
let _c1 = _1 != nil
|
||||
let _c2 = _2 != nil
|
||||
if _c1 && _c2 {
|
||||
return Api.MessageEntity.messageEntityBlockquote(offset: _1!, length: _2!)
|
||||
let _c3 = _3 != nil
|
||||
if _c1 && _c2 && _c3 {
|
||||
return Api.MessageEntity.messageEntityBlockquote(flags: _1!, offset: _2!, length: _3!)
|
||||
}
|
||||
else {
|
||||
return nil
|
||||
|
@ -710,6 +710,8 @@ public extension Api {
|
||||
case starsTransactionPeerAppStore
|
||||
case starsTransactionPeerFragment
|
||||
case starsTransactionPeerPlayMarket
|
||||
case starsTransactionPeerPremiumBot
|
||||
case starsTransactionPeerUnsupported
|
||||
|
||||
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
|
||||
switch self {
|
||||
@ -736,6 +738,18 @@ public extension Api {
|
||||
buffer.appendInt32(2069236235)
|
||||
}
|
||||
|
||||
break
|
||||
case .starsTransactionPeerPremiumBot:
|
||||
if boxed {
|
||||
buffer.appendInt32(621656824)
|
||||
}
|
||||
|
||||
break
|
||||
case .starsTransactionPeerUnsupported:
|
||||
if boxed {
|
||||
buffer.appendInt32(-1779253276)
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -750,6 +764,10 @@ public extension Api {
|
||||
return ("starsTransactionPeerFragment", [])
|
||||
case .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? {
|
||||
return Api.StarsTransactionPeer.starsTransactionPeerPlayMarket
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
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_starsTransactionPeerPremiumBot(_ reader: BufferReader) -> StarsTransactionPeer? {
|
||||
return Api.StarsTransactionPeer.starsTransactionPeerPremiumBot
|
||||
}
|
||||
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 {
|
||||
enum StatsGraph: TypeConstructorDescription {
|
||||
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 {
|
||||
enum TopPeerCategory: TypeConstructorDescription {
|
||||
case topPeerCategoryBotsInline
|
||||
|
@ -593,8 +593,8 @@ func messageTextEntitiesFromApiEntities(_ entities: [Api.MessageEntity]) -> [Mes
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||
case let .messageEntityStrike(offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Strikethrough))
|
||||
case let .messageEntityBlockquote(offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote))
|
||||
case let .messageEntityBlockquote(flags, offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BlockQuote(isCollapsed: (flags & (1 << 0)) != 0)))
|
||||
case let .messageEntityBankCard(offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .BankCard))
|
||||
case let .messageEntitySpoiler(offset, length):
|
||||
|
@ -40,8 +40,12 @@ func apiEntitiesFromMessageTextEntities(_ entities: [MessageTextEntity], associa
|
||||
break
|
||||
case .Strikethrough:
|
||||
apiEntities.append(.messageEntityStrike(offset: offset, length: length))
|
||||
case .BlockQuote:
|
||||
apiEntities.append(.messageEntityBlockquote(offset: offset, length: length))
|
||||
case let .BlockQuote(isCollapsed):
|
||||
var flags: Int32 = 0
|
||||
if isCollapsed {
|
||||
flags |= 1 << 0
|
||||
}
|
||||
apiEntities.append(.messageEntityBlockquote(flags: flags, offset: offset, length: length))
|
||||
case .Underline:
|
||||
apiEntities.append(.messageEntityUnderline(offset: offset, length: length))
|
||||
case .BankCard:
|
||||
|
@ -1186,7 +1186,7 @@ private func parseEntities(_ entities: [SecretApi101.MessageEntity]) -> TextEnti
|
||||
case let .messageEntityUnderline(offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||
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:
|
||||
break
|
||||
}
|
||||
@ -1223,7 +1223,7 @@ private func parseEntities(_ entities: [SecretApi144.MessageEntity]) -> TextEnti
|
||||
case let .messageEntityUnderline(offset, length):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Underline))
|
||||
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):
|
||||
result.append(MessageTextEntity(range: Int(offset) ..< Int(offset + length), type: .Spoiler))
|
||||
case let .messageEntityCustomEmoji(offset, length, documentId):
|
||||
|
@ -18,7 +18,7 @@ public enum MessageTextEntityType: Equatable {
|
||||
case TextMention(peerId: PeerId)
|
||||
case PhoneNumber
|
||||
case Strikethrough
|
||||
case BlockQuote
|
||||
case BlockQuote(isCollapsed: Bool)
|
||||
case Underline
|
||||
case BankCard
|
||||
case Spoiler
|
||||
@ -66,7 +66,7 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
||||
case 13:
|
||||
self.type = .Strikethrough
|
||||
case 14:
|
||||
self.type = .BlockQuote
|
||||
self.type = .BlockQuote(isCollapsed: decoder.decodeBoolForKey("cl", orElse: false))
|
||||
case 15:
|
||||
self.type = .Underline
|
||||
case 16:
|
||||
@ -124,7 +124,7 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
||||
case 13:
|
||||
self.type = .Strikethrough
|
||||
case 14:
|
||||
self.type = .BlockQuote
|
||||
self.type = .BlockQuote(isCollapsed: try container.decodeIfPresent(Bool.self, forKey: "cl") ?? false)
|
||||
case 15:
|
||||
self.type = .Underline
|
||||
case 16:
|
||||
@ -180,8 +180,9 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
||||
encoder.encodeInt32(12, forKey: "_rawValue")
|
||||
case .Strikethrough:
|
||||
encoder.encodeInt32(13, forKey: "_rawValue")
|
||||
case .BlockQuote:
|
||||
case let .BlockQuote(isCollapsed):
|
||||
encoder.encodeInt32(14, forKey: "_rawValue")
|
||||
encoder.encodeBool(isCollapsed, forKey: "cl")
|
||||
case .Underline:
|
||||
encoder.encodeInt32(15, forKey: "_rawValue")
|
||||
case .BankCard:
|
||||
@ -239,8 +240,9 @@ public struct MessageTextEntity: PostboxCoding, Codable, Equatable {
|
||||
try container.encode(12 as Int32, forKey: "_rawValue")
|
||||
case .Strikethrough:
|
||||
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(isCollapsed, forKey: "cl")
|
||||
case .Underline:
|
||||
try container.encode(15 as Int32, forKey: "_rawValue")
|
||||
case .BankCard:
|
||||
|
@ -230,6 +230,8 @@ private extension StarsContext.State.Transaction {
|
||||
return nil
|
||||
}
|
||||
parsedPeer = .peer(EnginePeer(peer))
|
||||
case .starsTransactionPeerPremiumBot, .starsTransactionPeerUnsupported:
|
||||
return nil
|
||||
}
|
||||
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 {
|
||||
switch value.kind {
|
||||
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):
|
||||
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .Pre(language: language)))
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user