mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
slomode, boost addition function helpers
This commit is contained in:
parent
9116ef874c
commit
3e47ddbbd7
@ -1057,6 +1057,91 @@ public extension TelegramEngine.EngineData.Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public struct SlowmodeTimeout: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem {
|
||||||
|
public typealias Result = Int32?
|
||||||
|
|
||||||
|
fileprivate var id: EnginePeer.Id
|
||||||
|
public var mapKey: EnginePeer.Id {
|
||||||
|
return self.id
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(id: EnginePeer.Id) {
|
||||||
|
self.id = id
|
||||||
|
}
|
||||||
|
|
||||||
|
var key: PostboxViewKey {
|
||||||
|
return .cachedPeerData(peerId: self.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func extract(view: PostboxView) -> Result {
|
||||||
|
guard let view = view as? CachedPeerDataView else {
|
||||||
|
preconditionFailure()
|
||||||
|
}
|
||||||
|
if let cachedData = view.cachedPeerData as? CachedChannelData {
|
||||||
|
return cachedData.slowModeTimeout
|
||||||
|
} else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public struct SlowmodeValidUntilTimeout: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem {
|
||||||
|
public typealias Result = Int32?
|
||||||
|
|
||||||
|
fileprivate var id: EnginePeer.Id
|
||||||
|
public var mapKey: EnginePeer.Id {
|
||||||
|
return self.id
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(id: EnginePeer.Id) {
|
||||||
|
self.id = id
|
||||||
|
}
|
||||||
|
|
||||||
|
var key: PostboxViewKey {
|
||||||
|
return .cachedPeerData(peerId: self.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func extract(view: PostboxView) -> Result {
|
||||||
|
guard let view = view as? CachedPeerDataView else {
|
||||||
|
preconditionFailure()
|
||||||
|
}
|
||||||
|
if let cachedData = view.cachedPeerData as? CachedChannelData {
|
||||||
|
return cachedData.slowModeValidUntilTimestamp
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct CanAvoidGroupRestrictions: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem {
|
||||||
|
public typealias Result = Bool
|
||||||
|
|
||||||
|
fileprivate var id: EnginePeer.Id
|
||||||
|
public var mapKey: EnginePeer.Id {
|
||||||
|
return self.id
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(id: EnginePeer.Id) {
|
||||||
|
self.id = id
|
||||||
|
}
|
||||||
|
|
||||||
|
var key: PostboxViewKey {
|
||||||
|
return .cachedPeerData(peerId: self.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
func extract(view: PostboxView) -> Result {
|
||||||
|
guard let view = view as? CachedPeerDataView else {
|
||||||
|
preconditionFailure()
|
||||||
|
}
|
||||||
|
if let cachedData = view.cachedPeerData as? CachedChannelData {
|
||||||
|
if let boostsToUnrestrict = cachedData.boostsToUnrestrict {
|
||||||
|
let appliedBoosts = cachedData.appliedBoosts ?? 0
|
||||||
|
return boostsToUnrestrict <= appliedBoosts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public struct IsPremiumRequiredForMessaging: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, AnyPostboxViewDataItem {
|
public struct IsPremiumRequiredForMessaging: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, AnyPostboxViewDataItem {
|
||||||
public typealias Result = Bool
|
public typealias Result = Bool
|
||||||
|
|
||||||
|
@ -391,6 +391,186 @@ public extension TelegramEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func subscribe<
|
||||||
|
T0: TelegramEngineDataItem,
|
||||||
|
T1: TelegramEngineDataItem,
|
||||||
|
T2: TelegramEngineDataItem,
|
||||||
|
T3: TelegramEngineDataItem,
|
||||||
|
T4: TelegramEngineDataItem,
|
||||||
|
T5: TelegramEngineDataItem,
|
||||||
|
T6: TelegramEngineDataItem,
|
||||||
|
T7: TelegramEngineDataItem
|
||||||
|
>(
|
||||||
|
_ t0: T0,
|
||||||
|
_ t1: T1,
|
||||||
|
_ t2: T2,
|
||||||
|
_ t3: T3,
|
||||||
|
_ t4: T4,
|
||||||
|
_ t5: T5,
|
||||||
|
_ t6: T6,
|
||||||
|
_ t7: T7
|
||||||
|
) -> Signal<
|
||||||
|
(
|
||||||
|
T0.Result,
|
||||||
|
T1.Result,
|
||||||
|
T2.Result,
|
||||||
|
T3.Result,
|
||||||
|
T4.Result,
|
||||||
|
T5.Result,
|
||||||
|
T6.Result,
|
||||||
|
T7.Result
|
||||||
|
|
||||||
|
),
|
||||||
|
NoError> {
|
||||||
|
return self._subscribe(items: [
|
||||||
|
t0 as! AnyPostboxViewDataItem,
|
||||||
|
t1 as! AnyPostboxViewDataItem,
|
||||||
|
t2 as! AnyPostboxViewDataItem,
|
||||||
|
t3 as! AnyPostboxViewDataItem,
|
||||||
|
t4 as! AnyPostboxViewDataItem,
|
||||||
|
t5 as! AnyPostboxViewDataItem,
|
||||||
|
t6 as! AnyPostboxViewDataItem,
|
||||||
|
t7 as! AnyPostboxViewDataItem
|
||||||
|
])
|
||||||
|
|> map { results -> (T0.Result, T1.Result, T2.Result, T3.Result, T4.Result, T5.Result, T6.Result, T7.Result) in
|
||||||
|
return (
|
||||||
|
results[0] as! T0.Result,
|
||||||
|
results[1] as! T1.Result,
|
||||||
|
results[2] as! T2.Result,
|
||||||
|
results[3] as! T3.Result,
|
||||||
|
results[4] as! T4.Result,
|
||||||
|
results[5] as! T5.Result,
|
||||||
|
results[6] as! T6.Result,
|
||||||
|
results[7] as! T7.Result
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func subscribe<
|
||||||
|
T0: TelegramEngineDataItem,
|
||||||
|
T1: TelegramEngineDataItem,
|
||||||
|
T2: TelegramEngineDataItem,
|
||||||
|
T3: TelegramEngineDataItem,
|
||||||
|
T4: TelegramEngineDataItem,
|
||||||
|
T5: TelegramEngineDataItem,
|
||||||
|
T6: TelegramEngineDataItem,
|
||||||
|
T7: TelegramEngineDataItem,
|
||||||
|
T8: TelegramEngineDataItem
|
||||||
|
>(
|
||||||
|
_ t0: T0,
|
||||||
|
_ t1: T1,
|
||||||
|
_ t2: T2,
|
||||||
|
_ t3: T3,
|
||||||
|
_ t4: T4,
|
||||||
|
_ t5: T5,
|
||||||
|
_ t6: T6,
|
||||||
|
_ t7: T7,
|
||||||
|
_ t8: T8
|
||||||
|
) -> Signal<
|
||||||
|
(
|
||||||
|
T0.Result,
|
||||||
|
T1.Result,
|
||||||
|
T2.Result,
|
||||||
|
T3.Result,
|
||||||
|
T4.Result,
|
||||||
|
T5.Result,
|
||||||
|
T6.Result,
|
||||||
|
T7.Result,
|
||||||
|
T8.Result
|
||||||
|
),
|
||||||
|
NoError> {
|
||||||
|
return self._subscribe(items: [
|
||||||
|
t0 as! AnyPostboxViewDataItem,
|
||||||
|
t1 as! AnyPostboxViewDataItem,
|
||||||
|
t2 as! AnyPostboxViewDataItem,
|
||||||
|
t3 as! AnyPostboxViewDataItem,
|
||||||
|
t4 as! AnyPostboxViewDataItem,
|
||||||
|
t5 as! AnyPostboxViewDataItem,
|
||||||
|
t6 as! AnyPostboxViewDataItem,
|
||||||
|
t7 as! AnyPostboxViewDataItem,
|
||||||
|
t8 as! AnyPostboxViewDataItem
|
||||||
|
])
|
||||||
|
|> map { results -> (T0.Result, T1.Result, T2.Result, T3.Result, T4.Result, T5.Result, T6.Result, T7.Result, T8.Result) in
|
||||||
|
return (
|
||||||
|
results[0] as! T0.Result,
|
||||||
|
results[1] as! T1.Result,
|
||||||
|
results[2] as! T2.Result,
|
||||||
|
results[3] as! T3.Result,
|
||||||
|
results[4] as! T4.Result,
|
||||||
|
results[5] as! T5.Result,
|
||||||
|
results[6] as! T6.Result,
|
||||||
|
results[7] as! T7.Result,
|
||||||
|
results[8] as! T8.Result
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public func subscribe<
|
||||||
|
T0: TelegramEngineDataItem,
|
||||||
|
T1: TelegramEngineDataItem,
|
||||||
|
T2: TelegramEngineDataItem,
|
||||||
|
T3: TelegramEngineDataItem,
|
||||||
|
T4: TelegramEngineDataItem,
|
||||||
|
T5: TelegramEngineDataItem,
|
||||||
|
T6: TelegramEngineDataItem,
|
||||||
|
T7: TelegramEngineDataItem,
|
||||||
|
T8: TelegramEngineDataItem,
|
||||||
|
T9: TelegramEngineDataItem
|
||||||
|
|
||||||
|
>(
|
||||||
|
_ t0: T0,
|
||||||
|
_ t1: T1,
|
||||||
|
_ t2: T2,
|
||||||
|
_ t3: T3,
|
||||||
|
_ t4: T4,
|
||||||
|
_ t5: T5,
|
||||||
|
_ t6: T6,
|
||||||
|
_ t7: T7,
|
||||||
|
_ t8: T8,
|
||||||
|
_ t9: T9
|
||||||
|
|
||||||
|
) -> Signal<
|
||||||
|
(
|
||||||
|
T0.Result,
|
||||||
|
T1.Result,
|
||||||
|
T2.Result,
|
||||||
|
T3.Result,
|
||||||
|
T4.Result,
|
||||||
|
T5.Result,
|
||||||
|
T6.Result,
|
||||||
|
T7.Result,
|
||||||
|
T8.Result,
|
||||||
|
T9.Result
|
||||||
|
),
|
||||||
|
NoError> {
|
||||||
|
return self._subscribe(items: [
|
||||||
|
t0 as! AnyPostboxViewDataItem,
|
||||||
|
t1 as! AnyPostboxViewDataItem,
|
||||||
|
t2 as! AnyPostboxViewDataItem,
|
||||||
|
t3 as! AnyPostboxViewDataItem,
|
||||||
|
t4 as! AnyPostboxViewDataItem,
|
||||||
|
t5 as! AnyPostboxViewDataItem,
|
||||||
|
t6 as! AnyPostboxViewDataItem,
|
||||||
|
t7 as! AnyPostboxViewDataItem,
|
||||||
|
t8 as! AnyPostboxViewDataItem,
|
||||||
|
t9 as! AnyPostboxViewDataItem
|
||||||
|
])
|
||||||
|
|> map { results -> (T0.Result, T1.Result, T2.Result, T3.Result, T4.Result, T5.Result, T6.Result, T7.Result, T8.Result, T9.Result) in
|
||||||
|
return (
|
||||||
|
results[0] as! T0.Result,
|
||||||
|
results[1] as! T1.Result,
|
||||||
|
results[2] as! T2.Result,
|
||||||
|
results[3] as! T3.Result,
|
||||||
|
results[4] as! T4.Result,
|
||||||
|
results[5] as! T5.Result,
|
||||||
|
results[6] as! T6.Result,
|
||||||
|
results[7] as! T7.Result,
|
||||||
|
results[8] as! T8.Result,
|
||||||
|
results[9] as! T9.Result
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public func get<
|
public func get<
|
||||||
T0: TelegramEngineDataItem,
|
T0: TelegramEngineDataItem,
|
||||||
T1: TelegramEngineDataItem
|
T1: TelegramEngineDataItem
|
||||||
|
Loading…
x
Reference in New Issue
Block a user