X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fjsfunctions.h;h=4bc369a98732cf0926017e3f4261ef570e5c8cf5;hb=refs%2Fheads%2Fmaster;hp=e623a4b5c7dcc04d5e2793cade85da3b7ca9313b;hpb=2850d99e2d772efc65fa9bc0552d7b6e62dff5c4;p=minitube diff --git a/src/jsfunctions.h b/src/jsfunctions.h index e623a4b..4bc369a 100644 --- a/src/jsfunctions.h +++ b/src/jsfunctions.h @@ -21,16 +21,20 @@ $END_LICENSE */ #ifndef JSFUNCTIONS_H #define JSFUNCTIONS_H +#include +#include #include -#include #include 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