mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Various fixes
This commit is contained in:
@@ -33,6 +33,9 @@ extension ResolvedBotAdminRights {
|
||||
if components.contains("delete_messages") {
|
||||
rawValue |= ResolvedBotAdminRights.deleteMessages.rawValue
|
||||
}
|
||||
if components.contains("edit_messages") {
|
||||
rawValue |= ResolvedBotAdminRights.editMessages.rawValue
|
||||
}
|
||||
if components.contains("restrict_members") {
|
||||
rawValue |= ResolvedBotAdminRights.restrictMembers.rawValue
|
||||
}
|
||||
@@ -66,6 +69,7 @@ extension ResolvedBotAdminRights {
|
||||
public enum ParsedInternalPeerUrlParameter {
|
||||
case botStart(String)
|
||||
case groupBotStart(String, ResolvedBotAdminRights?)
|
||||
case channelBotStart(String, ResolvedBotAdminRights?)
|
||||
case attachBotStart(String, String?)
|
||||
case gameStart(String)
|
||||
case channelMessage(Int32, Double?)
|
||||
@@ -293,6 +297,15 @@ public func parseInternalUrl(sharedContext: SharedAccountContext, context: Accou
|
||||
}
|
||||
}
|
||||
return .peer(.name(peerName), .groupBotStart(value, botAdminRights))
|
||||
} else if queryItem.name == "startchannel" {
|
||||
var botAdminRights: ResolvedBotAdminRights?
|
||||
for queryItem in queryItems {
|
||||
if queryItem.name == "admin", let value = queryItem.value {
|
||||
botAdminRights = ResolvedBotAdminRights(value)
|
||||
break
|
||||
}
|
||||
}
|
||||
return .peer(.name(peerName), .channelBotStart(value, botAdminRights))
|
||||
} else if queryItem.name == "game" {
|
||||
return .peer(.name(peerName), .gameStart(value))
|
||||
} else if ["voicechat", "videochat", "livestream"].contains(queryItem.name) {
|
||||
@@ -344,7 +357,7 @@ public func parseInternalUrl(sharedContext: SharedAccountContext, context: Accou
|
||||
}
|
||||
}
|
||||
return .startAttach(peerName, nil, choose)
|
||||
} else if queryItem.name == "startgroup" || queryItem.name == "startchannel" {
|
||||
} else if queryItem.name == "startgroup" {
|
||||
var botAdminRights: ResolvedBotAdminRights?
|
||||
for queryItem in queryItems {
|
||||
if queryItem.name == "admin", let value = queryItem.value {
|
||||
@@ -353,6 +366,15 @@ public func parseInternalUrl(sharedContext: SharedAccountContext, context: Accou
|
||||
}
|
||||
}
|
||||
return .peer(.name(peerName), .groupBotStart("", botAdminRights))
|
||||
} else if queryItem.name == "startchannel" {
|
||||
var botAdminRights: ResolvedBotAdminRights?
|
||||
for queryItem in queryItems {
|
||||
if queryItem.name == "admin", let value = queryItem.value {
|
||||
botAdminRights = ResolvedBotAdminRights(value)
|
||||
break
|
||||
}
|
||||
}
|
||||
return .peer(.name(peerName), .channelBotStart("", botAdminRights))
|
||||
} else if queryItem.name == "boost" {
|
||||
return .peer(.name(peerName), .boost)
|
||||
} else if queryItem.name == "profile" {
|
||||
@@ -793,7 +815,9 @@ private func resolveInternalUrl(context: AccountContext, url: ParsedInternalUrl)
|
||||
case let .botStart(payload):
|
||||
return .single(.result(.botStart(peer: peer._asPeer(), payload: payload)))
|
||||
case let .groupBotStart(payload, adminRights):
|
||||
return .single(.result(.groupBotStart(peerId: peer.id, payload: payload, adminRights: adminRights)))
|
||||
return .single(.result(.groupBotStart(peerId: peer.id, payload: payload, adminRights: adminRights, peerType: .group)))
|
||||
case let .channelBotStart(payload, adminRights):
|
||||
return .single(.result(.groupBotStart(peerId: peer.id, payload: payload, adminRights: adminRights, peerType: .channel)))
|
||||
case let .gameStart(game):
|
||||
return .single(.result(.gameStart(peerId: peer.id, game: game)))
|
||||
case let .attachBotStart(name, payload):
|
||||
|
||||
Reference in New Issue
Block a user