From 8e83a55143a30ac58c0abc1d37ca69af3e524a95 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 3 Mar 2025 12:42:17 +0300 Subject: [PATCH] Added ability to request earn stats without currency earn in megagroups. --- .../earn/info_channel_earn_list.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp index e556b7c58..302975afe 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp @@ -297,9 +297,7 @@ void InnerWidget::load() { _showFinished.events( ) | rpl::take(1) | rpl::start_with_next([=] { - state->api.request( - ) | rpl::start_with_error_done(fail, [=] { - _state.currencyEarn = state->api.data(); + const auto nextRequests = [=] { state->apiCreditsHistory.request({}, [=]( const Data::CreditsStatusSlice &data) { _state.creditsStatusSlice = data; @@ -322,6 +320,19 @@ void InnerWidget::load() { state->apiPremiumBotLifetime.destroy(); }, state->apiPremiumBotLifetime); }); + }; + const auto isMegagroup = _peer->isMegagroup(); + state->api.request( + ) | rpl::start_with_error_done([=](const QString &error) { + if (isMegagroup) { + _state.currencyEarn = {}; + nextRequests(); + } else { + show->showToast(error); + } + }, [=] { + _state.currencyEarn = state->api.data(); + nextRequests(); }, state->apiLifetime); }, lifetime()); } @@ -333,7 +344,8 @@ void InnerWidget::fill() { : nullptr; const auto channel = _peer->asChannel(); const auto canViewCurrencyEarn = channel - ? (channel->flags() & ChannelDataFlag::CanViewRevenue) + ? ((channel->flags() & ChannelDataFlag::CanViewRevenue) + && !channel->isMegagroup()) : true; const auto &data = canViewCurrencyEarn ? _state.currencyEarn