mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Various improvements
This commit is contained in:
@@ -31,19 +31,66 @@ public func presentGiveawayInfoController(
|
||||
guard let message else {
|
||||
return
|
||||
}
|
||||
guard let giveaway = message.media.first(where: { $0 is TelegramMediaGiveaway }) as? TelegramMediaGiveaway else {
|
||||
return
|
||||
|
||||
let giveaway = message.media.first(where: { $0 is TelegramMediaGiveaway }) as? TelegramMediaGiveaway
|
||||
let giveawayResults = message.media.first(where: { $0 is TelegramMediaGiveawayResults }) as? TelegramMediaGiveawayResults
|
||||
|
||||
var channelPeerId: EnginePeer.Id?
|
||||
if let giveaway {
|
||||
if let peerId = giveaway.channelPeerIds.first {
|
||||
channelPeerId = peerId
|
||||
}
|
||||
} else if let _ = giveawayResults {
|
||||
channelPeerId = message.author?.id
|
||||
}
|
||||
|
||||
var quantity: Int32 = 0
|
||||
if let giveaway {
|
||||
quantity = giveaway.quantity
|
||||
} else if let giveawayResults {
|
||||
quantity = giveawayResults.winnersCount + giveawayResults.unclaimedCount
|
||||
}
|
||||
|
||||
var months: Int32 = 0
|
||||
if let giveaway {
|
||||
months = giveaway.months
|
||||
} else if let giveawayResults {
|
||||
months = giveawayResults.months
|
||||
}
|
||||
|
||||
var prizeDescription: String?
|
||||
if let giveaway {
|
||||
prizeDescription = giveaway.prizeDescription
|
||||
} else if let giveawayResults {
|
||||
prizeDescription = giveawayResults.prizeDescription
|
||||
}
|
||||
|
||||
var untilDateValue: Int32 = 0
|
||||
if let giveaway {
|
||||
untilDateValue = giveaway.untilDate
|
||||
} else if let _ = giveawayResults {
|
||||
untilDateValue = message.timestamp
|
||||
}
|
||||
|
||||
var onlyNewSubscribers = false
|
||||
if let giveaway, giveaway.flags.contains(.onlyNewSubscribers) {
|
||||
onlyNewSubscribers = true
|
||||
}
|
||||
|
||||
var channelsCount = 1
|
||||
if let giveaway {
|
||||
channelsCount = giveaway.channelPeerIds.count
|
||||
}
|
||||
|
||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||
|
||||
var peerName = ""
|
||||
if let peerId = giveaway.channelPeerIds.first, let peer = message.peers[peerId] {
|
||||
if let peerId = channelPeerId, let peer = message.peers[peerId] {
|
||||
peerName = EnginePeer(peer).compactDisplayTitle
|
||||
}
|
||||
|
||||
let timeZone = TimeZone.current
|
||||
let untilDate = stringForDate(timestamp: giveaway.untilDate, timeZone: timeZone, strings: presentationData.strings)
|
||||
let untilDate = stringForDate(timestamp: untilDateValue, timeZone: timeZone, strings: presentationData.strings)
|
||||
|
||||
let title: String
|
||||
let text: String
|
||||
@@ -56,8 +103,8 @@ public func presentGiveawayInfoController(
|
||||
})]
|
||||
|
||||
var additionalPrizes = ""
|
||||
if let prizeDescription = giveaway.prizeDescription, !prizeDescription.isEmpty {
|
||||
additionalPrizes = "\n\n" + presentationData.strings.Chat_Giveaway_Info_AdditionalPrizes(peerName, "\(giveaway.quantity) \(prizeDescription)").string
|
||||
if let prizeDescription, !prizeDescription.isEmpty {
|
||||
additionalPrizes = "\n\n" + presentationData.strings.Chat_Giveaway_Info_AdditionalPrizes(peerName, "\(quantity) \(prizeDescription)").string
|
||||
}
|
||||
|
||||
switch giveawayInfo {
|
||||
@@ -71,23 +118,23 @@ public func presentGiveawayInfoController(
|
||||
|
||||
let intro: String
|
||||
if case .almostOver = status {
|
||||
intro = presentationData.strings.Chat_Giveaway_Info_EndedIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(giveaway.quantity), presentationData.strings.Chat_Giveaway_Info_Months(giveaway.months)).string
|
||||
intro = presentationData.strings.Chat_Giveaway_Info_EndedIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(quantity), presentationData.strings.Chat_Giveaway_Info_Months(months)).string
|
||||
} else {
|
||||
intro = presentationData.strings.Chat_Giveaway_Info_OngoingIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(giveaway.quantity), presentationData.strings.Chat_Giveaway_Info_Months(giveaway.months)).string
|
||||
intro = presentationData.strings.Chat_Giveaway_Info_OngoingIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(quantity), presentationData.strings.Chat_Giveaway_Info_Months(months)).string
|
||||
}
|
||||
|
||||
let ending: String
|
||||
if giveaway.flags.contains(.onlyNewSubscribers) {
|
||||
let randomUsers = presentationData.strings.Chat_Giveaway_Info_RandomUsers(giveaway.quantity)
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_OngoingNewMany(untilDate, randomUsers, peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(giveaway.channelPeerIds.count - 1)), startDate).string
|
||||
if onlyNewSubscribers {
|
||||
let randomUsers = presentationData.strings.Chat_Giveaway_Info_RandomUsers(quantity)
|
||||
if channelsCount > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_OngoingNewMany(untilDate, randomUsers, peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(channelsCount - 1)), startDate).string
|
||||
} else {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_OngoingNew(untilDate, randomUsers, peerName, startDate).string
|
||||
}
|
||||
} else {
|
||||
let randomSubscribers = presentationData.strings.Chat_Giveaway_Info_RandomSubscribers(giveaway.quantity)
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_OngoingMany(untilDate, randomSubscribers, peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(giveaway.channelPeerIds.count - 1))).string
|
||||
let randomSubscribers = presentationData.strings.Chat_Giveaway_Info_RandomSubscribers(quantity)
|
||||
if channelsCount > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_OngoingMany(untilDate, randomSubscribers, peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(channelsCount - 1))).string
|
||||
} else {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_Ongoing(untilDate, randomSubscribers, peerName).string
|
||||
}
|
||||
@@ -96,8 +143,8 @@ public func presentGiveawayInfoController(
|
||||
var participation: String
|
||||
switch status {
|
||||
case .notQualified:
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_NotQualifiedMany(peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(giveaway.channelPeerIds.count - 1)), untilDate).string
|
||||
if channelsCount > 1 {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_NotQualifiedMany(peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(channelsCount - 1)), untilDate).string
|
||||
} else {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_NotQualified(peerName, untilDate).string
|
||||
}
|
||||
@@ -116,8 +163,8 @@ public func presentGiveawayInfoController(
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_NotAllowedCountry
|
||||
}
|
||||
case .participating:
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_ParticipatingMany(peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(giveaway.channelPeerIds.count - 1))).string
|
||||
if channelsCount > 1 {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_ParticipatingMany(peerName, presentationData.strings.Chat_Giveaway_Info_OtherChannels(Int32(channelsCount - 1))).string
|
||||
} else {
|
||||
participation = presentationData.strings.Chat_Giveaway_Info_Participating(peerName).string
|
||||
}
|
||||
@@ -139,19 +186,19 @@ public func presentGiveawayInfoController(
|
||||
let finishDate = stringForDate(timestamp: finish, timeZone: timeZone, strings: presentationData.strings)
|
||||
title = presentationData.strings.Chat_Giveaway_Info_EndedTitle
|
||||
|
||||
let intro = presentationData.strings.Chat_Giveaway_Info_EndedIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(giveaway.quantity), presentationData.strings.Chat_Giveaway_Info_Months(giveaway.months)).string
|
||||
let intro = presentationData.strings.Chat_Giveaway_Info_EndedIntro(peerName, presentationData.strings.Chat_Giveaway_Info_Subscriptions(quantity), presentationData.strings.Chat_Giveaway_Info_Months(months)).string
|
||||
|
||||
var ending: String
|
||||
if giveaway.flags.contains(.onlyNewSubscribers) {
|
||||
let randomUsers = presentationData.strings.Chat_Giveaway_Info_RandomUsers(giveaway.quantity)
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
if onlyNewSubscribers {
|
||||
let randomUsers = presentationData.strings.Chat_Giveaway_Info_RandomUsers(quantity)
|
||||
if channelsCount > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_EndedNewMany(finishDate, randomUsers, peerName, startDate).string
|
||||
} else {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_EndedNew(finishDate, randomUsers, peerName, startDate).string
|
||||
}
|
||||
} else {
|
||||
let randomSubscribers = presentationData.strings.Chat_Giveaway_Info_RandomSubscribers(giveaway.quantity)
|
||||
if giveaway.channelPeerIds.count > 1 {
|
||||
let randomSubscribers = presentationData.strings.Chat_Giveaway_Info_RandomSubscribers(quantity)
|
||||
if channelsCount > 1 {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_EndedMany(finishDate, randomSubscribers, peerName).string
|
||||
} else {
|
||||
ending = presentationData.strings.Chat_Giveaway_Info_Ended(finishDate, randomSubscribers, peerName).string
|
||||
|
||||
Reference in New Issue
Block a user