fix: better sendReadStories

This commit is contained in:
ZavaruKitsu 2023-08-09 16:50:52 +00:00
parent 17c7993240
commit 3d24395d2e

View file

@ -1148,6 +1148,16 @@ void Stories::sendMarkAsReadRequest(
StoryId tillId) { StoryId tillId) {
Expects(peer->isUser()); Expects(peer->isUser());
// AyuGram sendReadStories
const auto settings = &AyuSettings::getInstance();
if (!settings->sendReadStories)
{
_markReadRequests.clear();
_markReadPending.clear();
return;
}
const auto peerId = peer->id; const auto peerId = peer->id;
_markReadRequests.emplace(peerId); _markReadRequests.emplace(peerId);
const auto finish = [=] { const auto finish = [=] {
@ -1158,22 +1168,11 @@ void Stories::sendMarkAsReadRequest(
} }
checkQuitPreventFinished(); checkQuitPreventFinished();
}; };
const auto api = &_owner->session().api();
// AyuGram sendReadStories api->request(MTPstories_ReadStories(
const auto settings = &AyuSettings::getInstance(); peer->asUser()->inputUser,
MTP_int(tillId)
if (settings->sendReadStories) )).done(finish).fail(finish).send();
{
const auto api = &_owner->session().api();
api->request(MTPstories_ReadStories(
peer->asUser()->inputUser,
MTP_int(tillId)
)).done(finish).fail(finish).send();
}
else
{
finish();
}
} }
void Stories::checkQuitPreventFinished() { void Stories::checkQuitPreventFinished() {
@ -1205,6 +1204,16 @@ void Stories::sendIncrementViewsRequests() {
if (_incrementViewsPending.empty()) { if (_incrementViewsPending.empty()) {
return; return;
} }
// AyuGram sendReadStories
const auto settings = &AyuSettings::getInstance();
if (!settings->sendReadStories)
{
_incrementViewsPending.clear();
_incrementViewsRequests.clear();
return;
}
auto ids = QVector<MTPint>(); auto ids = QVector<MTPint>();
struct Prepared { struct Prepared {
PeerId peer = 0; PeerId peer = 0;
@ -1232,23 +1241,11 @@ void Stories::sendIncrementViewsRequests() {
} }
checkQuitPreventFinished(); checkQuitPreventFinished();
}; };
api->request(MTPstories_IncrementStoryViews(
// AyuGram sendReadStories _owner->peer(peer)->asUser()->inputUser,
const auto settings = &AyuSettings::getInstance(); MTP_vector<MTPint>(std::move(ids))
)).done(finish).fail(finish).send();
if (settings->sendReadStories) _incrementViewsPending.remove(peer);
{
api->request(MTPstories_IncrementStoryViews(
_owner->peer(peer)->asUser()->inputUser,
MTP_vector<MTPint>(std::move(ids))
)).done(finish).fail(finish).send();
_incrementViewsPending.remove(peer);
}
else
{
_incrementViewsPending.remove(peer);
finish();
}
} }
} }