2
0
mirror of https://github.com/kotatogram/kotatogram-desktop synced 2025-09-05 09:05:14 +00:00

Add basic HTML export.

This commit is contained in:
John Preston
2018-06-23 21:27:41 +01:00
parent e708065446
commit 9d66f9cc03
22 changed files with 1904 additions and 66 deletions

View File

@@ -580,7 +580,7 @@ Result TextWriter::writeFrequentContacts(const Data::ContactsList &data) {
Data::Utf8String category) {
for (const auto &top : peers) {
const auto user = [&]() -> Data::Utf8String {
if (!top.peer.user()) {
if (!top.peer.user() || top.peer.user()->isSelf) {
return Data::Utf8String();
} else if (top.peer.name().isEmpty()) {
return "(deleted user)";
@@ -590,12 +590,14 @@ Result TextWriter::writeFrequentContacts(const Data::ContactsList &data) {
const auto chatType = [&] {
if (const auto chat = top.peer.chat()) {
return chat->username.isEmpty()
? (chat->broadcast
? (chat->isBroadcast
? "Private channel"
: "Private group")
: (chat->broadcast
: (chat->isSupergroup
? "Private supergroup"
: "Private group"))
: (chat->isBroadcast
? "Public channel"
: "Public group");
: "Public supergroup");
}
return "";
}();
@@ -607,11 +609,18 @@ Result TextWriter::writeFrequentContacts(const Data::ContactsList &data) {
}
return top.peer.name();
}();
const auto saved = [&]() -> Data::Utf8String {
if (!top.peer.user() || !top.peer.user()->isSelf) {
return Data::Utf8String();
}
return "Saved messages";
}();
list.push_back(SerializeKeyValue({
{ "Category", category },
{ "User", top.peer.user() ? user : QByteArray() },
{ "Chat", saved },
{ chatType, chat },
{ "Rating", QString::number(top.rating).toUtf8() }
{ "Rating", Data::NumberToString(top.rating) }
}));
}
};
@@ -834,18 +843,24 @@ Result TextWriter::writeChatEnd() {
const auto TypeString = [](Type type) {
switch (type) {
case Type::Unknown: return "(unknown)";
case Type::Self:
case Type::Personal: return "Personal chat";
case Type::Bot: return "Bot chat";
case Type::PrivateGroup: return "Private group";
case Type::PublicGroup: return "Public group";
case Type::PrivateSupergroup: return "Private supergroup";
case Type::PublicSupergroup: return "Public supergroup";
case Type::PrivateChannel: return "Private channel";
case Type::PublicChannel: return "Public channel";
}
Unexpected("Dialog type in TypeString.");
};
const auto NameString = [](
const Data::Utf8String &name,
const Data::DialogInfo &dialog,
Type type) -> QByteArray {
if (dialog.type == Type::Self) {
return "Saved messages";
}
const auto name = dialog.name;
if (!name.isEmpty()) {
return name;
}
@@ -854,14 +869,15 @@ Result TextWriter::writeChatEnd() {
case Type::Personal: return "(deleted user)";
case Type::Bot: return "(deleted bot)";
case Type::PrivateGroup:
case Type::PublicGroup: return "(deleted group)";
case Type::PrivateSupergroup:
case Type::PublicSupergroup: return "(deleted group)";
case Type::PrivateChannel:
case Type::PublicChannel: return "(deleted channel)";
}
Unexpected("Dialog type in TypeString.");
};
return _chats->writeBlock(SerializeKeyValue({
{ "Name", NameString(_dialog.name, _dialog.type) },
{ "Name", NameString(_dialog, _dialog.type) },
{ "Type", TypeString(_dialog.type) },
{
(_dialog.onlyMyMessages