aboutsummaryrefslogtreecommitdiffstats
path: root/src/archive/base_archive.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/archive/base_archive.h')
-rw-r--r--src/archive/base_archive.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/archive/base_archive.h b/src/archive/base_archive.h
new file mode 100644
index 0000000..fcabcf1
--- /dev/null
+++ b/src/archive/base_archive.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <QString>
+#include <QListWidget>
+#include <variant>
+#include "src/types.h"
+
+enum ArchiveType {
+ MASTODON
+};
+
+class Archive {
+public:
+ enum InitError {
+ NoError = 0,
+ FailedOpeningFile,
+ JsonParseError,
+ JsonEmpty,
+ JsonNull,
+ JsonNotObject,
+ JsonNotActivityStream // for ActivityPub archives
+ };
+
+ virtual ~Archive() {};
+ virtual std::variant<QString, InitError> init() = 0;
+
+ static Archive* create_archive(ArchiveType archive_type, const QString& main_filename);
+
+ virtual void update_status_list(ViewStatusTypes allowed_types, QListWidget *parent) = 0;
+ virtual const QString get_html_status_info(int status_index, int text_zone_width, StatusType status_type, QLocale* locale) = 0;
+ virtual const QString get_html_status_text(int status_index) = 0;
+
+protected:
+ Archive(const QString& main_filename);
+ QString main_filename;
+};