mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Added api support of flag to view credits stats from full channel.
This commit is contained in:
parent
6818b8d8dc
commit
1d5e4040f4
4 changed files with 18 additions and 4 deletions
|
@ -1089,7 +1089,8 @@ void ApplyChannelUpdate(
|
|||
| Flag::CanGetStatistics
|
||||
| Flag::ViewAsMessages
|
||||
| Flag::CanViewRevenue
|
||||
| Flag::PaidMediaAllowed;
|
||||
| Flag::PaidMediaAllowed
|
||||
| Flag::CanViewCreditsRevenue;
|
||||
channel->setFlags((channel->flags() & ~mask)
|
||||
| (update.is_can_set_username() ? Flag::CanSetUsername : Flag())
|
||||
| (update.is_can_view_participants()
|
||||
|
@ -1107,7 +1108,10 @@ void ApplyChannelUpdate(
|
|||
? Flag::ViewAsMessages
|
||||
: Flag())
|
||||
| (update.is_paid_media_allowed() ? Flag::PaidMediaAllowed : Flag())
|
||||
| (update.is_can_view_revenue() ? Flag::CanViewRevenue : Flag()));
|
||||
| (update.is_can_view_revenue() ? Flag::CanViewRevenue : Flag())
|
||||
| (update.is_can_view_stars_revenue()
|
||||
? Flag::CanViewCreditsRevenue
|
||||
: Flag()));
|
||||
channel->setUserpicPhoto(update.vchat_photo());
|
||||
if (const auto migratedFrom = update.vmigrated_from_chat_id()) {
|
||||
channel->addFlags(Flag::Megagroup);
|
||||
|
|
|
@ -67,6 +67,7 @@ enum class ChannelDataFlag : uint64 {
|
|||
SimilarExpanded = (1ULL << 31),
|
||||
CanViewRevenue = (1ULL << 32),
|
||||
PaidMediaAllowed = (1ULL << 33),
|
||||
CanViewCreditsRevenue = (1ULL << 34),
|
||||
};
|
||||
inline constexpr bool is_flag_type(ChannelDataFlag) { return true; };
|
||||
using ChannelDataFlags = base::flags<ChannelDataFlag>;
|
||||
|
|
|
@ -281,6 +281,9 @@ void InnerWidget::load() {
|
|||
rpl::lifetime apiPremiumBotLifetime;
|
||||
};
|
||||
const auto state = lifetime().make_state<State>(_peer);
|
||||
using ChannelFlag = ChannelDataFlag;
|
||||
const auto canViewCredits = !_peer->isChannel()
|
||||
|| (_peer->asChannel()->flags() & ChannelFlag::CanViewCreditsRevenue);
|
||||
|
||||
Info::Statistics::FillLoading(
|
||||
this,
|
||||
|
@ -363,7 +366,11 @@ void InnerWidget::load() {
|
|||
_state.premiumBotId = bot->id;
|
||||
state->apiCredits.request(
|
||||
) | rpl::start_with_error_done([=](const QString &error) {
|
||||
fail(error);
|
||||
if (canViewCredits) {
|
||||
fail(error);
|
||||
} else {
|
||||
_state.creditsEarn = {};
|
||||
}
|
||||
finish();
|
||||
}, [=] {
|
||||
_state.creditsEarn = state->apiCredits.data();
|
||||
|
|
|
@ -1090,6 +1090,8 @@ void Filler::addViewStatistics() {
|
|||
using Flag = ChannelDataFlag;
|
||||
const auto canGetStats = (channel->flags() & Flag::CanGetStatistics);
|
||||
const auto canViewEarn = (channel->flags() & Flag::CanViewRevenue);
|
||||
const auto canViewCreditsEarn
|
||||
= (channel->flags() & Flag::CanViewCreditsRevenue);
|
||||
if (canGetStats) {
|
||||
_addAction(tr::lng_stats_title(tr::now), [=] {
|
||||
if (const auto strong = weak.get()) {
|
||||
|
@ -1107,7 +1109,7 @@ void Filler::addViewStatistics() {
|
|||
}
|
||||
}, &st::menuIconBoosts);
|
||||
}
|
||||
if (canViewEarn) {
|
||||
if (canViewEarn || canViewCreditsEarn) {
|
||||
_addAction(tr::lng_channel_earn_title(tr::now), [=] {
|
||||
if (const auto strong = weak.get()) {
|
||||
controller->showSection(Info::ChannelEarn::Make(peer));
|
||||
|
|
Loading…
Add table
Reference in a new issue