]> git.sur5r.net Git - minitube/blobdiff - lib/js/js.cpp
New upstream version 3.9.1
[minitube] / lib / js / js.cpp
index 2390ef5fc290383d895d15cf5bcac8a91a6e0cb6..884006497bac55fd3580d303cb0291faf6e96d24 100644 (file)
@@ -55,6 +55,8 @@ JSResult &JS::callFunction(JSResult *result, const QString &name, const QJSValue
         return *result;
     }
 
+    resetNAM();
+
     auto function = engine->evaluate(name);
     if (!function.isCallable()) {
         qWarning() << function.toString() << " is not callable";
@@ -71,6 +73,24 @@ JSResult &JS::callFunction(JSResult *result, const QString &name, const QJSValue
     return *result;
 }
 
+void JS::resetNAM() {
+    class MyCookieJar : public QNetworkCookieJar {
+        bool insertCookie(const QNetworkCookie &cookie) {
+            if (cookie.name().contains("CONSENT")) {
+                qDebug() << "Fixing CONSENT cookie" << cookie;
+                auto cookie2 = cookie;
+                cookie2.setValue(cookie.value().replace("PENDING", "YES"));
+                return QNetworkCookieJar::insertCookie(cookie2);
+            }
+            return QNetworkCookieJar::insertCookie(cookie);
+        }
+    };
+
+    auto nam = getEngine().networkAccessManager();
+    nam->clearAccessCache();
+    nam->setCookieJar(new MyCookieJar());
+}
+
 void JS::initialize() {
     if (url.isEmpty()) {
         qDebug() << "No js url set";