| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- #pragma once
 
- #include "auth-youtube.hpp"
 
- #include <json11.hpp>
 
- #include <QString>
 
- struct ChannelDescription {
 
- 	QString id;
 
- 	QString title;
 
- };
 
- struct StreamDescription {
 
- 	QString id;
 
- 	QString name;
 
- 	QString title;
 
- };
 
- struct CategoryDescription {
 
- 	QString id;
 
- 	QString title;
 
- };
 
- struct BroadcastDescription {
 
- 	QString id;
 
- 	QString title;
 
- 	QString description;
 
- 	QString privacy;
 
- 	CategoryDescription category;
 
- 	QString latency;
 
- 	bool made_for_kids;
 
- 	bool auto_start;
 
- 	bool auto_stop;
 
- 	bool dvr;
 
- 	bool schedul_for_later;
 
- 	QString schedul_date_time;
 
- 	QString projection;
 
- };
 
- bool IsYouTubeService(const std::string &service);
 
- class YoutubeApiWrappers : public YoutubeAuth {
 
- 	Q_OBJECT
 
- 	bool TryInsertCommand(const char *url, const char *content_type,
 
- 			      std::string request_type, const char *data,
 
- 			      json11::Json &ret, long *error_code = nullptr,
 
- 			      int data_size = 0);
 
- 	bool UpdateAccessToken();
 
- 	bool InsertCommand(const char *url, const char *content_type,
 
- 			   std::string request_type, const char *data,
 
- 			   json11::Json &ret, int data_size = 0);
 
- public:
 
- 	YoutubeApiWrappers(const Def &d);
 
- 	bool GetChannelDescription(ChannelDescription &channel_description);
 
- 	bool InsertBroadcast(BroadcastDescription &broadcast);
 
- 	bool InsertStream(StreamDescription &stream);
 
- 	bool BindStream(const QString broadcast_id, const QString stream_id,
 
- 			json11::Json &json_out);
 
- 	bool GetBroadcastsList(json11::Json &json_out, const QString &page,
 
- 			       const QString &status);
 
- 	bool
 
- 	GetVideoCategoriesList(QVector<CategoryDescription> &category_list_out);
 
- 	bool SetVideoCategory(const QString &video_id,
 
- 			      const QString &video_title,
 
- 			      const QString &video_description,
 
- 			      const QString &categorie_id);
 
- 	bool SetVideoThumbnail(const QString &video_id,
 
- 			       const QString &thumbnail_file);
 
- 	bool StartBroadcast(const QString &broadcast_id);
 
- 	bool StopBroadcast(const QString &broadcast_id);
 
- 	bool ResetBroadcast(const QString &broadcast_id,
 
- 			    json11::Json &json_out);
 
- 	bool StartLatestBroadcast();
 
- 	bool StopLatestBroadcast();
 
- 	bool SendChatMessage(const std::string &chat_id,
 
- 			     const QString &message);
 
- 	void SetBroadcastId(QString &broadcast_id);
 
- 	QString GetBroadcastId();
 
- 	bool FindBroadcast(const QString &id, json11::Json &json_out);
 
- 	bool FindStream(const QString &id, json11::Json &json_out);
 
- 	QString GetLastError() { return lastErrorMessage; };
 
- 	bool GetTranslatedError(QString &error_message);
 
- private:
 
- 	QString broadcast_id;
 
- 	int lastError;
 
- 	QString lastErrorMessage;
 
- 	QString lastErrorReason;
 
- };
 
 
  |