aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/archive_parser.cpp')
-rw-r--r--src/archive_parser.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/archive_parser.cpp b/src/archive_parser.cpp
index d677f84..d16cd49 100644
--- a/src/archive_parser.cpp
+++ b/src/archive_parser.cpp
@@ -209,6 +209,25 @@ QString get_html_status_object_as_list(QJsonObject obj, QString element_name) {
return text;
}
+QString get_html_status_object_languages(QJsonObject obj, QString element_name = "contentMap") {
+ QString text;
+
+ if (obj.contains(element_name) and obj.value(element_name).isObject()) {
+ QJsonObject content_map = obj.value(element_name).toObject();
+ QStringList languages = content_map.keys();
+
+ for (auto lang : languages)
+ text.append(lang + ", ");
+ }
+
+ if (text.isEmpty())
+ text = "<em>(unknown)</em>";
+ else
+ text.chop(2); // remove leftover ", "
+
+ return text;
+}
+
QString Archive::get_html_status_attachments(QJsonValueRef attachments_ref, int text_zone_width) {
QString text;
QJsonArray attachments = attachments_ref.toArray();
@@ -278,6 +297,7 @@ QString Archive::get_html_status_info(int status_index, int text_zone_width, Sta
if (activity["content"].isString()) {
info_text.replace("{{content}}", activity["content"].toString());
+ info_text.replace("{{lang}}", get_html_status_object_languages(activity));
}
} else if (obj["object"].isString()) {
QString text = obj["object"].toString();
@@ -292,6 +312,7 @@ QString Archive::get_html_status_info(int status_index, int text_zone_width, Sta
info_text.replace("{{content}}", content_text);
info_text.replace("{{summary}}", "<em>(empty)</em>");
+ info_text.replace("{{lang}}", "<em>(not applicable)</em>");
info_text.replace("{{attachment-div}}", "");
}