Added initial API support for different boosts lists.

This commit is contained in:
23rd
2023-11-02 15:28:17 +03:00
committed by John Preston
parent 6fcf80c6cf
commit 79b5f7eda9
4 changed files with 23 additions and 13 deletions
+15 -7
View File
@@ -533,8 +533,13 @@ rpl::producer<rpl::no_value, QString> Boosts::request() {
};
_boostStatus.link = qs(data.vboost_url());
requestBoosts({}, [=](Data::BoostsListSlice &&slice) {
_boostStatus.firstSlice = std::move(slice);
using namespace Data;
requestBoosts({ .gifts = false }, [=](BoostsListSlice &&slice) {
_boostStatus.firstSliceBoosts = std::move(slice);
requestBoosts({ .gifts = true }, [=](BoostsListSlice &&s) {
_boostStatus.firstSliceGifts = std::move(s);
consumer.put_done();
});
consumer.put_done();
});
}).fail([=](const MTP::Error &error) {
@@ -553,9 +558,11 @@ void Boosts::requestBoosts(
}
constexpr auto kTlFirstSlice = tl::make_int(kFirstSlice);
constexpr auto kTlLimit = tl::make_int(kLimit);
const auto gifts = token.gifts;
_requestId = _api.request(MTPpremium_GetBoostsList(
// MTP_flags(MTPpremium_GetBoostsList::Flag::f_gifts),
MTP_flags(0),
gifts
? MTP_flags(MTPpremium_GetBoostsList::Flag::f_gifts)
: MTP_flags(0),
_peer->input,
MTP_string(token.next),
token.next.isEmpty() ? kTlFirstSlice : kTlLimit
@@ -596,12 +603,13 @@ void Boosts::requestBoosts(
}
done(Data::BoostsListSlice{
.list = std::move(list),
.total = data.vcount().v,
.multipliedTotal = data.vcount().v,
.allLoaded = (data.vcount().v == data.vboosts().v.size()),
.token = Data::BoostsListSlice::OffsetToken{
data.vnext_offset()
.next = data.vnext_offset()
? qs(*data.vnext_offset())
: QString()
: QString(),
.gifts = gifts,
},
});
}).fail([=] {