From a22054bb93586bdaeb1e29f90ef2367d90fe2d34 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Fri, 29 Nov 2024 10:41:22 +0800 Subject: [PATCH] YouTubeDL: move to QJson --- src/modules/Extensions/MediaBrowser/ProstoPleer.cpp | 7 ++++--- src/qmplay2/CMakeLists.txt | 3 ++- src/qmplay2/YouTubeDL.cpp | 13 +++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git src/modules/Extensions/MediaBrowser/ProstoPleer.cpp src/modules/Extensions/MediaBrowser/ProstoPleer.cpp index cb3c287d..c35bd5d2 100644 --- src/modules/Extensions/MediaBrowser/ProstoPleer.cpp +++ src/modules/Extensions/MediaBrowser/ProstoPleer.cpp @@ -21,9 +21,10 @@ #include #include #include -#include +#include #include +#include #include #include #include @@ -187,8 +188,8 @@ bool ProstoPleer::convertAddress(const QString &prefix, const QString &url, cons IOController &netReply = ioCtrl->toRef(); if (net.startAndWait(netReply, QString("%1/site_api/files/get_url?id=%2").arg(g_url, fileId.mid(idx + 1)))) { - const Json json = Json::parse(netReply->readAll()); - const QString tmpStreamUrl = json["track_link"].string_value(); + const QJsonDocument json = QJsonDocument::fromJson(netReply->readAll()); + const QString tmpStreamUrl = json.object()["track_link"].toString(); if (!tmpStreamUrl.isEmpty()) *streamUrl = tmpStreamUrl; netReply.clear(); diff --git src/qmplay2/CMakeLists.txt src/qmplay2/CMakeLists.txt index 01932ce6..270ad9cf 100644 --- src/qmplay2/CMakeLists.txt +++ src/qmplay2/CMakeLists.txt @@ -212,7 +212,8 @@ if(USE_QT5) target_link_libraries(${PROJECT_NAME} ${APPKIT_LIBRARY}) endif() else() - target_link_libraries(${PROJECT_NAME} Qt4::QtCore Qt4::QtGui ${DBUS}) + add_definitions(-I/opt/local/include/QJson4) + target_link_libraries(${PROJECT_NAME} Qt4::QtCore Qt4::QtGui QJson4 ${DBUS}) endif() if(WIN32) diff --git src/qmplay2/YouTubeDL.cpp src/qmplay2/YouTubeDL.cpp index b87f64af..fb7e72fc 100644 --- src/qmplay2/YouTubeDL.cpp +++ src/qmplay2/YouTubeDL.cpp @@ -21,11 +21,13 @@ #include #include #include -#include #include #include #include +#include +#include +#include #include /* Avoid downloading yt-dlp, it fails to work correctly. */ @@ -41,12 +43,11 @@ static QReadWriteLock g_lock; static void exportCookiesFromJSON(const QString &jsonData, const QString &url) { - const Json json = Json::parse(jsonData.toUtf8()); - const QByteArray urlData = url.toUtf8(); - for (const Json &formats : json["formats"].array_items()) + const QJsonDocument json = QJsonDocument::fromJson(jsonData.toUtf8()); + for (const QJsonValue &formats : json.object()["formats"].toArray()) { - if (urlData == formats["url"].string_value()) - QMPlay2Core.addCookies(url, formats["http_headers"]["Cookie"].string_value()); + if (url == formats.toObject()["url"].toString()) + QMPlay2Core.addCookies(url, formats.toObject()["http_headers"].toObject()["Cookie"].toString().toUtf8()); } }