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:
@@ -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
|
||||
|
Reference in New Issue
Block a user