#pragma once #include #include #include #include #include "auth-oauth.hpp" #ifdef BROWSER_AVAILABLE class BrowserDock; #endif inline const std::vector youtubeServices = { {"YouTube - RTMP", Auth::Type::OAuth_LinkedAccount, true, true}, {"YouTube - RTMPS", Auth::Type::OAuth_LinkedAccount, true, true}, {"YouTube - HLS", Auth::Type::OAuth_LinkedAccount, true, true}}; class YoutubeAuth : public OAuthStreamKey { Q_OBJECT bool uiLoaded = false; std::mt19937 randomSeed; std::string section; #ifdef BROWSER_AVAILABLE QSharedPointer chat; QSharedPointer chatMenu; #endif virtual bool RetryLogin() override; virtual void SaveInternal() override; virtual bool LoadInternal() override; virtual void LoadUI() override; QString GenerateState(); public: YoutubeAuth(const Def &d); void SetChatId(QString &chat_id); void ResetChat(); static std::shared_ptr Login(QWidget *parent, const std::string &service); };