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 hasPrem = Flag::HasRequirePremiumToWrite;
constexpr auto hasStars = Flag::HasStarsPerMessage; constexpr auto hasStars = Flag::HasStarsPerMessage;
user->setStarsPerMessage(stars); user->setStarsPerMessage(stars);
user->setFlags((user->flags() & ~(me | hasPrem | hasStars)) user->setFlags((user->flags() & ~me)
| known | known
| (requirePremium ? (me | hasPrem) : Flag()) | (requirePremium ? (me | hasPrem) : Flag())
| (stars ? hasStars : Flag())); | (stars ? hasStars : Flag()));

View file

@ -1267,7 +1267,7 @@ void ApplyChannelUpdate(
| Flag::CanViewCreditsRevenue | Flag::CanViewCreditsRevenue
| Flag::StargiftsAvailable | Flag::StargiftsAvailable
| Flag::PaidMessagesAvailable | Flag::PaidMessagesAvailable
| Flag::HasStarsPerMessage | (channel->starsPerMessage() ? Flag::HasStarsPerMessage : Flag())
| Flag::StarsPerMessageKnown; | Flag::StarsPerMessageKnown;
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())

View file

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

View file

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