#pragma once #include #include #include #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 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; virtual const QString get_instance_address(); protected: Archive(const QString& main_filename); QString main_filename; };