mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +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::CanGetStatistics
|
||||||
| Flag::ViewAsMessages
|
| Flag::ViewAsMessages
|
||||||
| Flag::CanViewRevenue
|
| Flag::CanViewRevenue
|
||||||
| Flag::PaidMediaAllowed;
|
| Flag::PaidMediaAllowed
|
||||||
|
| Flag::CanViewCreditsRevenue;
|
||||||
channel->setFlags((channel->flags() & ~mask)
|
channel->setFlags((channel->flags() & ~mask)
|
||||||
| (update.is_can_set_username() ? Flag::CanSetUsername : Flag())
|
| (update.is_can_set_username() ? Flag::CanSetUsername : Flag())
|
||||||
| (update.is_can_view_participants()
|
| (update.is_can_view_participants()
|
||||||
|
@ -1107,7 +1108,10 @@ void ApplyChannelUpdate(
|
||||||
? Flag::ViewAsMessages
|
? Flag::ViewAsMessages
|
||||||
: Flag())
|
: Flag())
|
||||||
| (update.is_paid_media_allowed() ? Flag::PaidMediaAllowed : 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());
|
channel->setUserpicPhoto(update.vchat_photo());
|
||||||
if (const auto migratedFrom = update.vmigrated_from_chat_id()) {
|
if (const auto migratedFrom = update.vmigrated_from_chat_id()) {
|
||||||
channel->addFlags(Flag::Megagroup);
|
channel->addFlags(Flag::Megagroup);
|
||||||
|
|
|
@ -67,6 +67,7 @@ enum class ChannelDataFlag : uint64 {
|
||||||
SimilarExpanded = (1ULL << 31),
|
SimilarExpanded = (1ULL << 31),
|
||||||
CanViewRevenue = (1ULL << 32),
|
CanViewRevenue = (1ULL << 32),
|
||||||
PaidMediaAllowed = (1ULL << 33),
|
PaidMediaAllowed = (1ULL << 33),
|
||||||
|
CanViewCreditsRevenue = (1ULL << 34),
|
||||||
};
|
};
|
||||||
inline constexpr bool is_flag_type(ChannelDataFlag) { return true; };
|
inline constexpr bool is_flag_type(ChannelDataFlag) { return true; };
|
||||||
using ChannelDataFlags = base::flags<ChannelDataFlag>;
|
using ChannelDataFlags = base::flags<ChannelDataFlag>;
|
||||||
|
|
|
@ -281,6 +281,9 @@ void InnerWidget::load() {
|
||||||
rpl::lifetime apiPremiumBotLifetime;
|
rpl::lifetime apiPremiumBotLifetime;
|
||||||
};
|
};
|
||||||
const auto state = lifetime().make_state<State>(_peer);
|
const auto state = lifetime().make_state<State>(_peer);
|
||||||
|
using ChannelFlag = ChannelDataFlag;
|
||||||
|
const auto canViewCredits = !_peer->isChannel()
|
||||||
|
|| (_peer->asChannel()->flags() & ChannelFlag::CanViewCreditsRevenue);
|
||||||
|
|
||||||
Info::Statistics::FillLoading(
|
Info::Statistics::FillLoading(
|
||||||
this,
|
this,
|
||||||
|
@ -363,7 +366,11 @@ void InnerWidget::load() {
|
||||||
_state.premiumBotId = bot->id;
|
_state.premiumBotId = bot->id;
|
||||||
state->apiCredits.request(
|
state->apiCredits.request(
|
||||||
) | rpl::start_with_error_done([=](const QString &error) {
|
) | rpl::start_with_error_done([=](const QString &error) {
|
||||||
fail(error);
|
if (canViewCredits) {
|
||||||
|
fail(error);
|
||||||
|
} else {
|
||||||
|
_state.creditsEarn = {};
|
||||||
|
}
|
||||||
finish();
|
finish();
|
||||||
}, [=] {
|
}, [=] {
|
||||||
_state.creditsEarn = state->apiCredits.data();
|
_state.creditsEarn = state->apiCredits.data();
|
||||||
|
|
|
@ -1090,6 +1090,8 @@ void Filler::addViewStatistics() {
|
||||||
using Flag = ChannelDataFlag;
|
using Flag = ChannelDataFlag;
|
||||||
const auto canGetStats = (channel->flags() & Flag::CanGetStatistics);
|
const auto canGetStats = (channel->flags() & Flag::CanGetStatistics);
|
||||||
const auto canViewEarn = (channel->flags() & Flag::CanViewRevenue);
|
const auto canViewEarn = (channel->flags() & Flag::CanViewRevenue);
|
||||||
|
const auto canViewCreditsEarn
|
||||||
|
= (channel->flags() & Flag::CanViewCreditsRevenue);
|
||||||
if (canGetStats) {
|
if (canGetStats) {
|
||||||
_addAction(tr::lng_stats_title(tr::now), [=] {
|
_addAction(tr::lng_stats_title(tr::now), [=] {
|
||||||
if (const auto strong = weak.get()) {
|
if (const auto strong = weak.get()) {
|
||||||
|
@ -1107,7 +1109,7 @@ void Filler::addViewStatistics() {
|
||||||
}
|
}
|
||||||
}, &st::menuIconBoosts);
|
}, &st::menuIconBoosts);
|
||||||
}
|
}
|
||||||
if (canViewEarn) {
|
if (canViewEarn || canViewCreditsEarn) {
|
||||||
_addAction(tr::lng_channel_earn_title(tr::now), [=] {
|
_addAction(tr::lng_channel_earn_title(tr::now), [=] {
|
||||||
if (const auto strong = weak.get()) {
|
if (const auto strong = weak.get()) {
|
||||||
controller->showSection(Info::ChannelEarn::Make(peer));
|
controller->showSection(Info::ChannelEarn::Make(peer));
|
||||||
|
|
Loading…
Add table
Reference in a new issue