Update API

This commit is contained in:
Ali 2023-05-22 23:55:05 +04:00
parent 2c62b6dcf3
commit 637d4b125a
8 changed files with 87 additions and 37 deletions

View File

@ -788,6 +788,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
dict[2008112412] = { return Api.StickerSetCovered.parse_stickerSetNoCovered($0) }
dict[-1882351956] = { return Api.StoryItem.parse_storyItem($0) }
dict[1374088783] = { return Api.StoryItem.parse_storyItemDeleted($0) }
dict[-1579626609] = { return Api.StoryItem.parse_storyItemSkipped($0) }
dict[-1491424062] = { return Api.StoryView.parse_storyView($0) }
dict[1368082392] = { return Api.StoryViews.parse_storyViews($0) }
dict[1964978502] = { return Api.TextWithEntities.parse_textWithEntities($0) }
@ -937,7 +938,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
dict[9203775] = { return Api.UserStatus.parse_userStatusOffline($0) }
dict[-306628279] = { return Api.UserStatus.parse_userStatusOnline($0) }
dict[-496024847] = { return Api.UserStatus.parse_userStatusRecently($0) }
dict[-144780892] = { return Api.UserStories.parse_userStories($0) }
dict[-2045664768] = { return Api.UserStories.parse_userStories($0) }
dict[-1274595769] = { return Api.Username.parse_username($0) }
dict[-567037804] = { return Api.VideoSize.parse_videoSize($0) }
dict[-128171716] = { return Api.VideoSize.parse_videoSizeEmojiMarkup($0) }
@ -1154,7 +1155,8 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
dict[172975040] = { return Api.storage.FileType.parse_filePng($0) }
dict[-1432995067] = { return Api.storage.FileType.parse_fileUnknown($0) }
dict[276907596] = { return Api.storage.FileType.parse_fileWebp($0) }
dict[1214632796] = { return Api.stories.AllStories.parse_allStories($0) }
dict[1528473228] = { return Api.stories.AllStories.parse_allStories($0) }
dict[1205903486] = { return Api.stories.AllStories.parse_allStoriesNotModified($0) }
dict[1340440049] = { return Api.stories.Stories.parse_stories($0) }
dict[-560009955] = { return Api.stories.StoryViews.parse_storyViews($0) }
dict[-79726676] = { return Api.stories.StoryViewsList.parse_storyViewsList($0) }

View File

@ -330,6 +330,7 @@ public extension Api {
indirect enum StoryItem: TypeConstructorDescription {
case storyItem(flags: Int32, id: Int32, date: Int32, caption: String?, entities: [Api.MessageEntity]?, media: Api.MessageMedia, privacy: [Api.PrivacyRule]?, views: Api.StoryViews?)
case storyItemDeleted(id: Int32)
case storyItemSkipped(id: Int32, date: Int32)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
switch self {
@ -360,6 +361,13 @@ public extension Api {
}
serializeInt32(id, buffer: buffer, boxed: false)
break
case .storyItemSkipped(let id, let date):
if boxed {
buffer.appendInt32(-1579626609)
}
serializeInt32(id, buffer: buffer, boxed: false)
serializeInt32(date, buffer: buffer, boxed: false)
break
}
}
@ -369,6 +377,8 @@ public extension Api {
return ("storyItem", [("flags", flags as Any), ("id", id as Any), ("date", date as Any), ("caption", caption as Any), ("entities", entities as Any), ("media", media as Any), ("privacy", privacy as Any), ("views", views as Any)])
case .storyItemDeleted(let id):
return ("storyItemDeleted", [("id", id as Any)])
case .storyItemSkipped(let id, let date):
return ("storyItemSkipped", [("id", id as Any), ("date", date as Any)])
}
}
@ -423,6 +433,20 @@ public extension Api {
return nil
}
}
public static func parse_storyItemSkipped(_ reader: BufferReader) -> StoryItem? {
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.StoryItem.storyItemSkipped(id: _1!, date: _2!)
}
else {
return nil
}
}
}
}

View File

@ -888,13 +888,13 @@ public extension Api {
}
public extension Api {
enum UserStories: TypeConstructorDescription {
case userStories(flags: Int32, userId: Int64, maxReadId: Int32?, stories: [Api.StoryItem], missingCount: Int32?)
case userStories(flags: Int32, userId: Int64, maxReadId: Int32?, stories: [Api.StoryItem])
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
switch self {
case .userStories(let flags, let userId, let maxReadId, let stories, let missingCount):
case .userStories(let flags, let userId, let maxReadId, let stories):
if boxed {
buffer.appendInt32(-144780892)
buffer.appendInt32(-2045664768)
}
serializeInt32(flags, buffer: buffer, boxed: false)
serializeInt64(userId, buffer: buffer, boxed: false)
@ -904,15 +904,14 @@ public extension Api {
for item in stories {
item.serialize(buffer, true)
}
if Int(flags) & Int(1 << 1) != 0 {serializeInt32(missingCount!, buffer: buffer, boxed: false)}
break
}
}
public func descriptionFields() -> (String, [(String, Any)]) {
switch self {
case .userStories(let flags, let userId, let maxReadId, let stories, let missingCount):
return ("userStories", [("flags", flags as Any), ("userId", userId as Any), ("maxReadId", maxReadId as Any), ("stories", stories as Any), ("missingCount", missingCount as Any)])
case .userStories(let flags, let userId, let maxReadId, let stories):
return ("userStories", [("flags", flags as Any), ("userId", userId as Any), ("maxReadId", maxReadId as Any), ("stories", stories as Any)])
}
}
@ -927,15 +926,12 @@ public extension Api {
if let _ = reader.readInt32() {
_4 = Api.parseVector(reader, elementSignature: 0, elementType: Api.StoryItem.self)
}
var _5: Int32?
if Int(_1!) & Int(1 << 1) != 0 {_5 = reader.readInt32() }
let _c1 = _1 != nil
let _c2 = _2 != nil
let _c3 = (Int(_1!) & Int(1 << 0) == 0) || _3 != nil
let _c4 = _4 != nil
let _c5 = (Int(_1!) & Int(1 << 1) == 0) || _5 != nil
if _c1 && _c2 && _c3 && _c4 && _c5 {
return Api.UserStories.userStories(flags: _1!, userId: _2!, maxReadId: _3, stories: _4!, missingCount: _5)
if _c1 && _c2 && _c3 && _c4 {
return Api.UserStories.userStories(flags: _1!, userId: _2!, maxReadId: _3, stories: _4!)
}
else {
return nil

View File

@ -360,56 +360,76 @@ public extension Api.storage {
}
public extension Api.stories {
enum AllStories: TypeConstructorDescription {
case allStories(flags: Int32, userStories: [Api.UserStories], nextOffset: String?, users: [Api.User])
case allStories(flags: Int32, state: String, userStories: [Api.UserStories], users: [Api.User])
case allStoriesNotModified(state: String)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
switch self {
case .allStories(let flags, let userStories, let nextOffset, let users):
case .allStories(let flags, let state, let userStories, let users):
if boxed {
buffer.appendInt32(1214632796)
buffer.appendInt32(1528473228)
}
serializeInt32(flags, buffer: buffer, boxed: false)
serializeString(state, buffer: buffer, boxed: false)
buffer.appendInt32(481674261)
buffer.appendInt32(Int32(userStories.count))
for item in userStories {
item.serialize(buffer, true)
}
if Int(flags) & Int(1 << 0) != 0 {serializeString(nextOffset!, buffer: buffer, boxed: false)}
buffer.appendInt32(481674261)
buffer.appendInt32(Int32(users.count))
for item in users {
item.serialize(buffer, true)
}
break
case .allStoriesNotModified(let state):
if boxed {
buffer.appendInt32(1205903486)
}
serializeString(state, buffer: buffer, boxed: false)
break
}
}
public func descriptionFields() -> (String, [(String, Any)]) {
switch self {
case .allStories(let flags, let userStories, let nextOffset, let users):
return ("allStories", [("flags", flags as Any), ("userStories", userStories as Any), ("nextOffset", nextOffset as Any), ("users", users as Any)])
case .allStories(let flags, let state, let userStories, let users):
return ("allStories", [("flags", flags as Any), ("state", state as Any), ("userStories", userStories as Any), ("users", users as Any)])
case .allStoriesNotModified(let state):
return ("allStoriesNotModified", [("state", state as Any)])
}
}
public static func parse_allStories(_ reader: BufferReader) -> AllStories? {
var _1: Int32?
_1 = reader.readInt32()
var _2: [Api.UserStories]?
var _2: String?
_2 = parseString(reader)
var _3: [Api.UserStories]?
if let _ = reader.readInt32() {
_2 = Api.parseVector(reader, elementSignature: 0, elementType: Api.UserStories.self)
_3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.UserStories.self)
}
var _3: String?
if Int(_1!) & Int(1 << 0) != 0 {_3 = parseString(reader) }
var _4: [Api.User]?
if let _ = reader.readInt32() {
_4 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self)
}
let _c1 = _1 != nil
let _c2 = _2 != nil
let _c3 = (Int(_1!) & Int(1 << 0) == 0) || _3 != nil
let _c3 = _3 != nil
let _c4 = _4 != nil
if _c1 && _c2 && _c3 && _c4 {
return Api.stories.AllStories.allStories(flags: _1!, userStories: _2!, nextOffset: _3, users: _4!)
return Api.stories.AllStories.allStories(flags: _1!, state: _2!, userStories: _3!, users: _4!)
}
else {
return nil
}
}
public static func parse_allStoriesNotModified(_ reader: BufferReader) -> AllStories? {
var _1: String?
_1 = parseString(reader)
let _c1 = _1 != nil
if _c1 {
return Api.stories.AllStories.allStoriesNotModified(state: _1!)
}
else {
return nil

View File

@ -8477,11 +8477,12 @@ public extension Api.functions.stories {
}
}
public extension Api.functions.stories {
static func getAllStories(offset: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.stories.AllStories>) {
static func getAllStories(flags: Int32, state: String?) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.stories.AllStories>) {
let buffer = Buffer()
buffer.appendInt32(-1976539530)
serializeString(offset, buffer: buffer, boxed: false)
return (FunctionDescription(name: "stories.getAllStories", parameters: [("offset", String(describing: offset))]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.stories.AllStories? in
buffer.appendInt32(-290400731)
serializeInt32(flags, buffer: buffer, boxed: false)
if Int(flags) & Int(1 << 0) != 0 {serializeString(state!, buffer: buffer, boxed: false)}
return (FunctionDescription(name: "stories.getAllStories", parameters: [("flags", String(describing: flags)), ("state", String(describing: state))]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.stories.AllStories? in
let reader = BufferReader(buffer)
var result: Api.stories.AllStories?
if let signature = reader.readInt32() {

View File

@ -4330,9 +4330,8 @@ func replayFinalState(
}
case let .UpdateStories(updateStories):
switch updateStories {
case let .userStories(_, userId, maxReadId, stories, missingCount):
case let .userStories(_, userId, maxReadId, stories):
let _ = maxReadId
let _ = missingCount
let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(userId))
for storyItem in stories {
if let parsedItem = _internal_parseApiStoryItem(transaction: transaction, peerId: peerId, apiStory: storyItem) {

View File

@ -183,7 +183,7 @@ func _internal_uploadStory(account: Account, media: EngineStoryInputMedia, text:
for update in updates.allUpdates {
if case let .updateStories(stories) = update {
switch stories {
case let .userStories(_, userId, _, apiStories, _):
case let .userStories(_, userId, _, apiStories):
if PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(userId)) == account.peerId, apiStories.count == 1 {
switch apiStories[0] {
case let .storyItem(_, _, _, _, _, media, _, _):
@ -251,6 +251,8 @@ extension Api.StoryItem {
return id
case let .storyItemDeleted(id):
return id
case let .storyItemSkipped(id, _):
return id
}
}
}
@ -305,6 +307,8 @@ func _internal_parseApiStoryItem(transaction: Transaction, peerId: PeerId, apiSt
} else {
return nil
}
case .storyItemSkipped:
return nil
case .storyItemDeleted:
return nil
}

View File

@ -454,6 +454,7 @@ public final class StoryListContext {
guard let loadMoreToken = effectiveLoadMoreToken else {
return
}
let _ = loadMoreToken
self.isLoadingMore = true
let account = self.account
@ -464,7 +465,7 @@ public final class StoryListContext {
switch scope {
case .all:
self.loadMoreDisposable.set((account.network.request(Api.functions.stories.getAllStories(offset: loadMoreToken))
self.loadMoreDisposable.set((account.network.request(Api.functions.stories.getAllStories(flags: 0, state: nil))
|> map(Optional.init)
|> `catch` { _ -> Signal<Api.stories.AllStories?, NoError> in
return .single(nil)
@ -475,7 +476,8 @@ public final class StoryListContext {
}
return account.postbox.transaction { transaction -> ([PeerItemSet], LoadMoreToken?) in
switch result {
case let .allStories(_, userStorySets, nextOffset, users):
case let .allStories(_, state, userStorySets, users):
let _ = state
var parsedItemSets: [PeerItemSet] = []
var peers: [Peer] = []
@ -498,10 +500,10 @@ public final class StoryListContext {
var apiTotalCount: Int32?
var apiMaxReadId: Int32 = 0
switch userStories {
case let .userStories(_, userId, maxReadId, stories, missingCount):
case let .userStories(_, userId, maxReadId, stories):
apiUserId = userId
apiStories = stories
apiTotalCount = (missingCount ?? 0) + Int32(stories.count)
apiTotalCount = Int32(stories.count)
apiMaxReadId = maxReadId ?? 0
}
@ -529,7 +531,9 @@ public final class StoryListContext {
}
}
return (parsedItemSets, nextOffset.flatMap { LoadMoreToken(value: $0) })
return (parsedItemSets, nil)
case .allStoriesNotModified:
return ([], nil)
}
}
}