From 17e54104a92b05da3c3893100bb1ce7ecae35ffd Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 13 Nov 2024 01:23:54 +0300 Subject: [PATCH] Added api support of subscription details. --- Telegram/SourceFiles/api/api_credits.cpp | 13 +++++++++++-- Telegram/SourceFiles/data/data_subscriptions.h | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/api/api_credits.cpp b/Telegram/SourceFiles/api/api_credits.cpp index 80e995219..79560458e 100644 --- a/Telegram/SourceFiles/api/api_credits.cpp +++ b/Telegram/SourceFiles/api/api_credits.cpp @@ -133,17 +133,26 @@ constexpr auto kTransactionsLimit = 100; } [[nodiscard]] Data::SubscriptionEntry SubscriptionFromTL( - const MTPStarsSubscription &tl) { + const MTPStarsSubscription &tl, + not_null peer) { return Data::SubscriptionEntry{ .id = qs(tl.data().vid()), .inviteHash = qs(tl.data().vchat_invite_hash().value_or_empty()), + .title = qs(tl.data().vtitle().value_or_empty()), + .slug = qs(tl.data().vinvoice_slug().value_or_empty()), .until = base::unixtime::parse(tl.data().vuntil_date().v), .subscription = Data::PeerSubscription{ .credits = tl.data().vpricing().data().vamount().v, .period = tl.data().vpricing().data().vperiod().v, }, .barePeerId = peerFromMTP(tl.data().vpeer()).value, + .photoId = (tl.data().vphoto() + ? peer->owner().photoFromWeb( + *tl.data().vphoto(), + ImageLocation())->id + : 0), .cancelled = tl.data().is_canceled(), + .cancelledByBot = tl.data().is_bot_canceled(), .expired = (base::unixtime::now() > tl.data().vuntil_date().v), .canRefulfill = tl.data().is_can_refulfill(), }; @@ -166,7 +175,7 @@ constexpr auto kTransactionsLimit = 100; if (const auto history = data.vsubscriptions()) { subscriptions.reserve(history->v.size()); for (const auto &tl : history->v) { - subscriptions.push_back(SubscriptionFromTL(tl)); + subscriptions.push_back(SubscriptionFromTL(tl, peer)); } } return Data::CreditsStatusSlice{ diff --git a/Telegram/SourceFiles/data/data_subscriptions.h b/Telegram/SourceFiles/data/data_subscriptions.h index 69af0d4d6..c0d4de5a2 100644 --- a/Telegram/SourceFiles/data/data_subscriptions.h +++ b/Telegram/SourceFiles/data/data_subscriptions.h @@ -18,6 +18,7 @@ struct PeerSubscription final { } }; +using PhotoId = uint64; struct SubscriptionEntry final { explicit operator bool() const { return !id.isEmpty(); @@ -25,10 +26,14 @@ struct SubscriptionEntry final { QString id; QString inviteHash; + QString title; + QString slug; QDateTime until; PeerSubscription subscription; uint64 barePeerId = 0; + PhotoId photoId = PhotoId(0); bool cancelled = false; + bool cancelledByBot = false; bool expired = false; bool canRefulfill = false; };