mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-06 15:13:57 +02:00
Added ability to request sponsored messages not only for channels.
This commit is contained in:
parent
78f2e70956
commit
bbdcb047d0
1 changed files with 11 additions and 16 deletions
|
@ -194,7 +194,12 @@ void SponsoredMessages::inject(
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SponsoredMessages::canHaveFor(not_null<History*> history) const {
|
bool SponsoredMessages::canHaveFor(not_null<History*> history) const {
|
||||||
return history->peer->isChannel();
|
if (history->peer->isChannel()) {
|
||||||
|
return true;
|
||||||
|
} else if (const auto user = history->peer->asUser()) {
|
||||||
|
return user->isBot();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) {
|
void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) {
|
||||||
|
@ -218,10 +223,8 @@ void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const auto channel = history->peer->asChannel();
|
|
||||||
Assert(channel != nullptr);
|
|
||||||
request.requestId = _session->api().request(
|
request.requestId = _session->api().request(
|
||||||
MTPmessages_GetSponsoredMessages(channel->input)
|
MTPmessages_GetSponsoredMessages(history->peer->input)
|
||||||
).done([=](const MTPmessages_sponsoredMessages &result) {
|
).done([=](const MTPmessages_sponsoredMessages &result) {
|
||||||
parse(history, result);
|
parse(history, result);
|
||||||
if (done) {
|
if (done) {
|
||||||
|
@ -406,7 +409,7 @@ void SponsoredMessages::clearItems(not_null<History*> history) {
|
||||||
|
|
||||||
const SponsoredMessages::Entry *SponsoredMessages::find(
|
const SponsoredMessages::Entry *SponsoredMessages::find(
|
||||||
const FullMsgId &fullId) const {
|
const FullMsgId &fullId) const {
|
||||||
if (!peerIsChannel(fullId.peer)) {
|
if (!peerIsChannel(fullId.peer) && !peerIsUser(fullId.peer)) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
const auto history = _session->data().history(fullId.peer);
|
const auto history = _session->data().history(fullId.peer);
|
||||||
|
@ -434,11 +437,9 @@ void SponsoredMessages::view(const FullMsgId &fullId) {
|
||||||
if (request.requestId || TooEarlyForRequest(request.lastReceived)) {
|
if (request.requestId || TooEarlyForRequest(request.lastReceived)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const auto channel = entryPtr->item->history()->peer->asChannel();
|
|
||||||
Assert(channel != nullptr);
|
|
||||||
request.requestId = _session->api().request(
|
request.requestId = _session->api().request(
|
||||||
MTPmessages_ViewSponsoredMessage(
|
MTPmessages_ViewSponsoredMessage(
|
||||||
channel->input ,
|
entryPtr->item->history()->peer->input,
|
||||||
MTP_bytes(randomId))
|
MTP_bytes(randomId))
|
||||||
).done([=] {
|
).done([=] {
|
||||||
auto &request = _viewRequests[randomId];
|
auto &request = _viewRequests[randomId];
|
||||||
|
@ -489,14 +490,12 @@ void SponsoredMessages::clicked(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const auto randomId = entryPtr->sponsored.randomId;
|
const auto randomId = entryPtr->sponsored.randomId;
|
||||||
const auto channel = entryPtr->item->history()->peer->asChannel();
|
|
||||||
Assert(channel != nullptr);
|
|
||||||
using Flag = MTPmessages_ClickSponsoredMessage::Flag;
|
using Flag = MTPmessages_ClickSponsoredMessage::Flag;
|
||||||
_session->api().request(MTPmessages_ClickSponsoredMessage(
|
_session->api().request(MTPmessages_ClickSponsoredMessage(
|
||||||
MTP_flags(Flag(0)
|
MTP_flags(Flag(0)
|
||||||
| (isMedia ? Flag::f_media : Flag(0))
|
| (isMedia ? Flag::f_media : Flag(0))
|
||||||
| (isFullscreen ? Flag::f_fullscreen : Flag(0))),
|
| (isFullscreen ? Flag::f_fullscreen : Flag(0))),
|
||||||
channel->input,
|
entryPtr->item->history()->peer->input,
|
||||||
MTP_bytes(randomId)
|
MTP_bytes(randomId)
|
||||||
)).send();
|
)).send();
|
||||||
}
|
}
|
||||||
|
@ -526,10 +525,6 @@ auto SponsoredMessages::createReportCallback(const FullMsgId &fullId)
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto history = entry->item->history();
|
const auto history = entry->item->history();
|
||||||
const auto channel = history->peer->asChannel();
|
|
||||||
if (!channel) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto erase = [=] {
|
const auto erase = [=] {
|
||||||
const auto it = _data.find(history);
|
const auto it = _data.find(history);
|
||||||
|
@ -549,7 +544,7 @@ auto SponsoredMessages::createReportCallback(const FullMsgId &fullId)
|
||||||
|
|
||||||
state->requestId = _session->api().request(
|
state->requestId = _session->api().request(
|
||||||
MTPmessages_ReportSponsoredMessage(
|
MTPmessages_ReportSponsoredMessage(
|
||||||
channel->input,
|
history->peer->input,
|
||||||
MTP_bytes(entry->sponsored.randomId),
|
MTP_bytes(entry->sponsored.randomId),
|
||||||
MTP_bytes(optionId))
|
MTP_bytes(optionId))
|
||||||
).done([=](
|
).done([=](
|
||||||
|
|
Loading…
Add table
Reference in a new issue