Try reducing self userFull requests.

This commit is contained in:
John Preston 2025-07-04 17:29:22 +04:00
parent 09f106bd49
commit a7e87cc722
4 changed files with 18 additions and 11 deletions

View file

@ -424,7 +424,7 @@ void Premium::requestPremiumRequiredSlice() {
constexpr auto hasPrem = Flag::HasRequirePremiumToWrite;
constexpr auto hasStars = Flag::HasStarsPerMessage;
user->setStarsPerMessage(stars);
user->setFlags((user->flags() & ~(me | hasPrem | hasStars))
user->setFlags((user->flags() & ~me)
| known
| (requirePremium ? (me | hasPrem) : Flag())
| (stars ? hasStars : Flag()));

View file

@ -1267,7 +1267,7 @@ void ApplyChannelUpdate(
| Flag::CanViewCreditsRevenue
| Flag::StargiftsAvailable
| Flag::PaidMessagesAvailable
| Flag::HasStarsPerMessage
| (channel->starsPerMessage() ? Flag::HasStarsPerMessage : Flag())
| Flag::StarsPerMessageKnown;
channel->setFlags((channel->flags() & ~mask)
| (update.is_can_set_username() ? Flag::CanSetUsername : Flag())

View file

@ -545,6 +545,14 @@ not_null<UserData*> Session::processUser(const MTPUser &data) {
const auto canShareThisContact = result->canShareThisContactFast();
const auto hasRequirePremiumToWrite
= data.is_contact_require_premium();
const auto hasStarsPerMessage
= data.vsend_paid_messages_stars().has_value();
if (!hasStarsPerMessage) {
result->setStarsPerMessage(0);
}
using Flag = UserDataFlag;
const auto flagsMask = Flag::Deleted
| Flag::Verified
@ -556,19 +564,15 @@ not_null<UserData*> Session::processUser(const MTPUser &data) {
| Flag::HasRequirePremiumToWrite
| Flag::HasStarsPerMessage
| Flag::MessageMoneyRestrictionsKnown
| (!hasRequirePremiumToWrite
? Flag::RequiresPremiumToWrite
: Flag())
| (!minimal
? Flag::Contact
| Flag::MutualContact
| Flag::DiscardMinPhoto
| Flag::StoriesHidden
: Flag());
const auto hasRequirePremiumToWrite
= data.is_contact_require_premium();
const auto hasStarsPerMessage
= data.vsend_paid_messages_stars().has_value();
if (!hasStarsPerMessage) {
result->setStarsPerMessage(0);
}
const auto storiesState = minimal
? std::optional<Data::Stories::PeerSourceState>()
: data.is_stories_unavailable()

View file

@ -719,7 +719,10 @@ void ApplyUserUpdate(not_null<UserData*> user, const MTPDuserFull &update) {
| Flag::CanPinMessages
| Flag::VoiceMessagesForbidden
| Flag::ReadDatesPrivate
| Flag::HasStarsPerMessage
| (update.is_contact_require_premium()
? Flag::HasRequirePremiumToWrite
: Flag())
| (user->starsPerMessage() ? Flag::HasStarsPerMessage : Flag())
| Flag::MessageMoneyRestrictionsKnown
| Flag::RequiresPremiumToWrite;
user->setFlags((user->flags() & ~mask)
@ -736,7 +739,7 @@ void ApplyUserUpdate(not_null<UserData*> user, const MTPDuserFull &update) {
| (user->starsPerMessage() ? Flag::HasStarsPerMessage : Flag())
| Flag::MessageMoneyRestrictionsKnown
| (update.is_contact_require_premium()
? Flag::RequiresPremiumToWrite
? (Flag::RequiresPremiumToWrite | Flag::HasRequirePremiumToWrite)
: Flag()));
user->setIsBlocked(update.is_blocked());
user->setCallsStatus(update.is_phone_calls_private()