videodownloader/network/spotifydownload.h

41 lines
1.0 KiB
C++

#ifndef SPOTIFYDOWNLOAD_H
#define SPOTIFYDOWNLOAD_H
#include "./httpdownloadwithinforequst.h"
namespace Network {
enum class SpotifyRequestType { Invalid, GetAuthenticationData, Authenticate };
class SpotifyDownload : public HttpDownloadWithInfoRequst {
Q_OBJECT
public:
explicit SpotifyDownload(const QString &songid, QObject *parent = nullptr);
Download *infoRequestDownload(bool &success, QString &reasonForFail);
QString typeName() const;
static void resetSession();
protected:
void evalVideoInformation(Download *, QBuffer *videoInfoBuffer);
private:
// static fields
static const QUrl m_spotifyUrl;
static bool m_authenticationCredentialsValidated;
static QString m_csrftoken;
static QString m_trackingId;
static QString m_referrer;
static QString m_creationFlow;
static QStringList m_supportedUseragents;
// fields
SpotifyRequestType m_currentRequest;
int m_triesToGetAuthenticationData;
};
} // namespace Network
#endif // SPOTIFYDOWNLOAD_H