#pragma once #include "src/activitypub/appost.h" #include "src/settings_interface.h" class Instance { public: struct OAuth2Step2 { bool ok; QString token; }; virtual ~Instance() {}; virtual APPost* get_post_from_url(const QString &url) = 0; // Returns the URI the user has to visit in their browser virtual QString oauth2_step1(); // auth_code is the code given by the user through the URI // Returns true if authenfication was successful. virtual OAuth2Step2 oauth2_step2(const QString &auth_code); bool supports_oauth2 = false; // Creates an instance by reading the type from settings static Instance* create_instance(); // Creates a specific type of instance, for use with SettingsDialog static Instance* create_instance(AppSettingsTypes::InstanceType type); };