2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-10-17 14:36:45 +00:00

Add web authorizations export.

This commit is contained in:
John Preston
2018-06-21 22:15:27 +01:00
parent b5a65a4519
commit 856356ce75
8 changed files with 175 additions and 25 deletions

View File

@@ -688,6 +688,17 @@ Result JsonWriter::writeFrequentContacts(const Data::ContactsList &data) {
Result JsonWriter::writeSessionsList(const Data::SessionsList &data) {
Expects(_output != nullptr);
if (const auto result = writeSessions(data); !result) {
return result;
} else if (const auto result = writeWebSessions(data); !result) {
return result;
}
return Result::Success();
}
Result JsonWriter::writeSessions(const Data::SessionsList &data) {
Expects(_output != nullptr);
auto block = prepareObjectItemStart("sessions");
block.append(pushNesting(Context::kArray));
for (const auto &session : data.list) {
@@ -714,6 +725,27 @@ Result JsonWriter::writeSessionsList(const Data::SessionsList &data) {
return _output->writeBlock(block + popNesting());
}
Result JsonWriter::writeWebSessions(const Data::SessionsList &data) {
Expects(_output != nullptr);
auto block = prepareObjectItemStart("web_sessions");
block.append(pushNesting(Context::kArray));
for (const auto &session : data.webList) {
block.append(prepareArrayItemStart());
block.append(SerializeObject(_context, {
{ "last_active", SerializeDate(session.lastActive) },
{ "last_ip", SerializeString(session.ip) },
{ "last_region", SerializeString(session.region) },
{ "bot_username", StringAllowNull(session.botUsername) },
{ "domain_name", StringAllowNull(session.domain) },
{ "browser", SerializeString(session.browser) },
{ "platform", SerializeString(session.platform) },
{ "created", SerializeDate(session.created) },
}));
}
return _output->writeBlock(block + popNesting());
}
Result JsonWriter::writeDialogsStart(const Data::DialogsInfo &data) {
return writeChatsStart(data, "chats");
}