#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
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