mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Moved out deserialization of MTP statistical graph to separated file.
This commit is contained in:
parent
f23c9a61bc
commit
cb65c50c19
4 changed files with 57 additions and 21 deletions
|
@ -164,6 +164,8 @@ PRIVATE
|
||||||
api/api_single_message_search.h
|
api/api_single_message_search.h
|
||||||
api/api_statistics.cpp
|
api/api_statistics.cpp
|
||||||
api/api_statistics.h
|
api/api_statistics.h
|
||||||
|
api/api_statistics_data_deserialize.cpp
|
||||||
|
api/api_statistics_data_deserialize.h
|
||||||
api/api_statistics_sender.cpp
|
api/api_statistics_sender.cpp
|
||||||
api/api_statistics_sender.h
|
api/api_statistics_sender.h
|
||||||
api/api_text_entities.cpp
|
api/api_text_entities.cpp
|
||||||
|
|
|
@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
*/
|
*/
|
||||||
#include "api/api_statistics.h"
|
#include "api/api_statistics.h"
|
||||||
|
|
||||||
|
#include "api/api_statistics_data_deserialize.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "base/unixtime.h"
|
#include "base/unixtime.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
|
@ -15,31 +16,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_story.h"
|
#include "data/data_story.h"
|
||||||
#include "history/history.h"
|
#include "history/history.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "statistics/statistics_data_deserialize.h"
|
|
||||||
|
|
||||||
namespace Api {
|
namespace Api {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
[[nodiscard]] Data::StatisticalGraph StatisticalGraphFromTL(
|
|
||||||
const MTPStatsGraph &tl) {
|
|
||||||
return tl.match([&](const MTPDstatsGraph &d) {
|
|
||||||
using namespace Statistic;
|
|
||||||
const auto zoomToken = d.vzoom_token().has_value()
|
|
||||||
? qs(*d.vzoom_token()).toUtf8()
|
|
||||||
: QByteArray();
|
|
||||||
return Data::StatisticalGraph{
|
|
||||||
StatisticalChartFromJSON(qs(d.vjson().data().vdata()).toUtf8()),
|
|
||||||
zoomToken,
|
|
||||||
};
|
|
||||||
}, [&](const MTPDstatsGraphAsync &data) {
|
|
||||||
return Data::StatisticalGraph{
|
|
||||||
.zoomToken = qs(data.vtoken()).toUtf8(),
|
|
||||||
};
|
|
||||||
}, [&](const MTPDstatsGraphError &data) {
|
|
||||||
return Data::StatisticalGraph{ .error = qs(data.verror()) };
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
[[nodiscard]] Data::StatisticalValue StatisticalValueFromTL(
|
[[nodiscard]] Data::StatisticalValue StatisticalValueFromTL(
|
||||||
const MTPStatsAbsValueAndPrev &tl) {
|
const MTPStatsAbsValueAndPrev &tl) {
|
||||||
const auto current = tl.data().vcurrent().v;
|
const auto current = tl.data().vcurrent().v;
|
||||||
|
|
35
Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp
Normal file
35
Telegram/SourceFiles/api/api_statistics_data_deserialize.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#include "api/api_statistics_data_deserialize.h"
|
||||||
|
|
||||||
|
#include "data/data_statistics_chart.h"
|
||||||
|
#include "statistics/statistics_data_deserialize.h"
|
||||||
|
|
||||||
|
namespace Api {
|
||||||
|
|
||||||
|
Data::StatisticalGraph StatisticalGraphFromTL(const MTPStatsGraph &tl) {
|
||||||
|
return tl.match([&](const MTPDstatsGraph &d) {
|
||||||
|
using namespace Statistic;
|
||||||
|
const auto zoomToken = d.vzoom_token().has_value()
|
||||||
|
? qs(*d.vzoom_token()).toUtf8()
|
||||||
|
: QByteArray();
|
||||||
|
return Data::StatisticalGraph{
|
||||||
|
StatisticalChartFromJSON(qs(d.vjson().data().vdata()).toUtf8()),
|
||||||
|
zoomToken,
|
||||||
|
};
|
||||||
|
}, [&](const MTPDstatsGraphAsync &data) {
|
||||||
|
return Data::StatisticalGraph{
|
||||||
|
.zoomToken = qs(data.vtoken()).toUtf8(),
|
||||||
|
};
|
||||||
|
}, [&](const MTPDstatsGraphError &data) {
|
||||||
|
return Data::StatisticalGraph{ .error = qs(data.verror()) };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace Api
|
19
Telegram/SourceFiles/api/api_statistics_data_deserialize.h
Normal file
19
Telegram/SourceFiles/api/api_statistics_data_deserialize.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Data {
|
||||||
|
struct StatisticalGraph;
|
||||||
|
} // namespace Data
|
||||||
|
|
||||||
|
namespace Api {
|
||||||
|
|
||||||
|
[[nodiscard]] Data::StatisticalGraph StatisticalGraphFromTL(
|
||||||
|
const MTPStatsGraph &tl);
|
||||||
|
|
||||||
|
} // namespace Api
|
Loading…
Add table
Reference in a new issue