]> git.sur5r.net Git - minitube/blobdiff - src/video.h
Imported Upstream version 2.4
[minitube] / src / video.h
index 76a9f58798f2a8e7878afec3be6328f0625a5388..16454425a87463b3038b413a4b548ce6e1860281 100644 (file)
@@ -22,6 +22,9 @@ $END_LICENSE */
 #define VIDEO_H
 
 #include <QtGui>
+#if QT_VERSION >= 0x050000
+#include <QtWidgets>
+#endif
 #include <QtNetwork>
 
 class Video : public QObject {
@@ -38,29 +41,29 @@ public:
     };
 
     const QString & title() const { return m_title; }
-    void setTitle( QString title ) { m_title = title; }
+    void setTitle(const QString &title) { m_title = title; }
 
     const QString & description() const { return m_description; }
-    void setDescription( QString description ) { m_description = description; }
+    void setDescription(const QString &description) { m_description = description; }
 
-    const QString & author() const { return m_author; }
-    void setAuthor( QString author ) { m_author = author; }
+    const QString & channelTitle() const { return m_channelTitle; }
+    void setChannelTitle(const QString &value) { m_channelTitle = value; }
 
-    const QString & userId() const { return m_userId; }
-    void setUserId( QString userId ) { m_userId = userId; }
+    const QString & channelId() const { return m_channelId; }
+    void setChannelId(const QString &value ) { m_channelId = value; }
 
-    const QUrl & webpage() const { return m_webpage; }
-    void setWebpage(QUrl webpage);
+    const QString & webpage();
+    void setWebpage(const QString &value);
 
     void loadThumbnail();
     const QPixmap & thumbnail() const { return m_thumbnail; }
 
     const QString & thumbnailUrl() { return m_thumbnailUrl; }
-    void setThumbnailUrl(QString url) { m_thumbnailUrl = url; }
+    void setThumbnailUrl(const QString &url) { m_thumbnailUrl = url; }
 
     void loadMediumThumbnail();
     const QString & mediumThumbnailUrl() { return m_mediumThumbnailUrl; }
-    void setMediumThumbnailUrl(QString url) { m_mediumThumbnailUrl = url; }
+    void setMediumThumbnailUrl(const QString &url) { m_mediumThumbnailUrl = url; }
 
     int duration() const { return m_duration; }
     void setDuration( int duration ) { m_duration = duration; }
@@ -70,7 +73,7 @@ public:
     void setViewCount( int viewCount ) { m_viewCount = viewCount; }
 
     const QDateTime & published() const { return m_published; }
-    void setPublished( QDateTime published ) { m_published = published; }
+    void setPublished(const QDateTime &published ) { m_published = published; }
 
     int getDefinitionCode() const { return definitionCode; }
 
@@ -94,19 +97,21 @@ private slots:
     void gotVideoInfo(QByteArray);
     void errorVideoInfo(QNetworkReply*);
     void scrapeWebPage(QByteArray);
-    void gotHeadHeaders(QNetworkReply*);
+    void parseJsPlayer(QByteArray bytes);
+    void parseDashManifest(QByteArray bytes);
 
 private:
     void getVideoInfo();
-    void findVideoUrl(int definitionCode);
-    void foundVideoUrl(QString videoToken, int definitionCode);
-    void parseFmtUrlMap(QString fmtUrlMap, bool fromWebPage = false);
+    void parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage = false);
+    void captureFunction(const QString &name, const QString &js);
+    void captureObject(const QString &name, const QString &js);
+    QString decryptSignature(const QString &s);
 
     QString m_title;
     QString m_description;
-    QString m_author;
-    QString m_userId;
-    QUrl m_webpage;
+    QString m_channelTitle;
+    QString m_channelId;
+    QString m_webpage;
     QUrl m_streamUrl;
     QPixmap m_thumbnail;
     QString m_thumbnailUrl;
@@ -126,6 +131,13 @@ private:
     
     bool loadingStreamUrl;
     bool loadingThumbnail;
+
+    QString fmtUrlMap;
+    QString sigFuncName;
+    QHash<QString, QString> sigFunctions;
+    QHash<QString, QString> sigObjects;
+
+    QString dashManifestUrl;
 };
 
 // This is required in order to use QPointer<Video> as a QVariant