]> git.sur5r.net Git - minitube/blobdiff - src/ytchannel.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / ytchannel.cpp
index 550bdb665c9baadcebd369a9724a6c0cbc000491..9ea2f348bb2472cbdc0b390e5a835b7a38a45f11 100644 (file)
@@ -28,8 +28,9 @@ $END_LICENSE */
 
 #include "iconutils.h"
 
-#include "videoapi.h"
 #include "ivchannel.h"
+#include "videoapi.h"
+#include "ytjschannel.h"
 
 YTChannel::YTChannel(const QString &channelId, QObject *parent)
     : QObject(parent), id(0), channelId(channelId), loadingThumbnail(false), notifyCount(0),
@@ -105,6 +106,18 @@ void YTChannel::maybeLoadfromAPI() {
             storeInfo();
             loading = false;
         });
+    } else if (VideoAPI::impl() == VideoAPI::JS) {
+        auto ivChannel = new YTJSChannel(channelId);
+        connect(ivChannel, &YTJSChannel::error, this, &YTChannel::requestError);
+        connect(ivChannel, &YTJSChannel::loaded, this, [this, ivChannel] {
+            displayName = ivChannel->getDisplayName();
+            description = ivChannel->getDescription();
+            thumbnailUrl = ivChannel->getThumbnailUrl();
+            ivChannel->deleteLater();
+            emit infoLoaded();
+            storeInfo();
+            loading = false;
+        });
     }
 }
 
@@ -216,8 +229,8 @@ void YTChannel::storeInfo() {
     loadThumbnail();
 }
 
-void YTChannel::subscribe(const QString &channelId) {
-    if (channelId.isEmpty()) return;
+bool YTChannel::subscribe(const QString &channelId) {
+    if (channelId.isEmpty()) return false;
 
     uint now = QDateTime::currentDateTime().toTime_t();
 
@@ -231,6 +244,7 @@ void YTChannel::subscribe(const QString &channelId) {
     query.bindValue(2, now);
     bool success = query.exec();
     if (!success) qWarning() << query.lastQuery() << query.lastError().text();
+    return success;
 
     // This will call maybeLoadFromApi
     YTChannel::forId(channelId);