mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-08-31 22:46:10 +00:00
Added API support to request statistical graph for single message.
This commit is contained in:
@@ -225,7 +225,7 @@ rpl::producer<rpl::no_value, QString> Statistics::request(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
rpl::producer<Data::StatisticalGraph, QString> Statistics::requestZoom(
|
Statistics::GraphResult Statistics::requestZoom(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
const QString &token,
|
const QString &token,
|
||||||
float64 x) {
|
float64 x) {
|
||||||
@@ -253,6 +253,32 @@ rpl::producer<Data::StatisticalGraph, QString> Statistics::requestZoom(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Statistics::GraphResult Statistics::requestMessage(
|
||||||
|
not_null<PeerData*> peer,
|
||||||
|
MsgId msgId) {
|
||||||
|
return [=](auto consumer) {
|
||||||
|
auto lifetime = rpl::lifetime();
|
||||||
|
const auto channel = peer->asChannel();
|
||||||
|
if (!channel) {
|
||||||
|
return lifetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
_api.request(MTPstats_GetMessageStats(
|
||||||
|
MTP_flags(MTPstats_GetMessageStats::Flags(0)),
|
||||||
|
channel->inputChannel,
|
||||||
|
MTP_int(msgId.bare)
|
||||||
|
)).done([=](const MTPstats_MessageStats &result) {
|
||||||
|
consumer.put_next(
|
||||||
|
StatisticalGraphFromTL(result.data().vviews_graph()));
|
||||||
|
consumer.put_done();
|
||||||
|
}).fail([=](const MTP::Error &error) {
|
||||||
|
consumer.put_error_copy(error.type());
|
||||||
|
}).send();
|
||||||
|
|
||||||
|
return lifetime;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
Data::ChannelStatistics Statistics::channelStats() const {
|
Data::ChannelStatistics Statistics::channelStats() const {
|
||||||
return _channelStats;
|
return _channelStats;
|
||||||
}
|
}
|
||||||
|
@@ -21,10 +21,14 @@ public:
|
|||||||
|
|
||||||
[[nodiscard]] rpl::producer<rpl::no_value, QString> request(
|
[[nodiscard]] rpl::producer<rpl::no_value, QString> request(
|
||||||
not_null<PeerData*> peer);
|
not_null<PeerData*> peer);
|
||||||
[[nodiscard]] rpl::producer<Data::StatisticalGraph, QString> requestZoom(
|
using GraphResult = rpl::producer<Data::StatisticalGraph, QString>;
|
||||||
|
[[nodiscard]] GraphResult requestZoom(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
const QString &token,
|
const QString &token,
|
||||||
float64 x);
|
float64 x);
|
||||||
|
[[nodiscard]] GraphResult requestMessage(
|
||||||
|
not_null<PeerData*> peer,
|
||||||
|
MsgId msgId);
|
||||||
|
|
||||||
[[nodiscard]] Data::ChannelStatistics channelStats() const;
|
[[nodiscard]] Data::ChannelStatistics channelStats() const;
|
||||||
[[nodiscard]] Data::SupergroupStatistics supergroupStats() const;
|
[[nodiscard]] Data::SupergroupStatistics supergroupStats() const;
|
||||||
|
Reference in New Issue
Block a user