]> git.sur5r.net Git - minitube/blobdiff - src/jsfunctions.h
Upload 3.9.3-2 to unstable
[minitube] / src / jsfunctions.h
index e623a4b5c7dcc04d5e2793cade85da3b7ca9313b..4bc369a98732cf0926017e3f4261ef570e5c8cf5 100644 (file)
@@ -21,16 +21,20 @@ $END_LICENSE */
 #ifndef JSFUNCTIONS_H
 #define JSFUNCTIONS_H
 
+#include <QJSEngine>
+#include <QJSValue>
 #include <QtCore>
-#include <QtScript>
 #include <QtNetwork>
 
 class JsFunctions : public QObject {
-
     Q_OBJECT
 
 public:
-    static JsFunctions* instance();
+    static JsFunctions *instance();
+    JsFunctions(const QString &url, QObject *parent = nullptr);
+    QJSValue evaluate(const QString &js);
+    QString string(const QString &js);
+    QStringList stringArray(const QString &js);
 
     // Specialized functions
     // TODO move to subclass
@@ -43,22 +47,25 @@ public:
     QString ageGateRE();
     QString jsPlayerRE();
     QString signatureFunctionNameRE();
+    QStringList signatureFunctionNameREs();
+    QStringList apiKeys();
 
-protected:
-    QString evaluate(const QString &js);
+signals:
+    void ready();
 
 private slots:
-    void gotJs(QByteArray bytes);
-    void errorJs(QNetworkReply *reply);
+    void gotJs(const QByteArray &bytes);
+    void errorJs(const QString &message);
 
 private:
-    JsFunctions(QObject *parent = 0);
-    static const QLatin1String &jsFilename();
-    static const QString &jsPath();
+    QString jsFilename();
+    QString jsDir();
+    QString jsPath();
     void loadJs();
     void parseJs(const QString &js);
 
-    QScriptEngine *engine;
+    QString url;
+    QJSEngine *engine;
 };
 
 #endif // JSFUNCTIONS_H