diff options
author | Berk Ozkutuk <ozkutuk@protonmail.com> | 2022-02-19 00:43:13 +0300 |
---|---|---|
committer | Berk Ozkutuk <ozkutuk@protonmail.com> | 2022-02-19 00:43:35 +0300 |
commit | f33b64c265c1140b746ae6f9bb39f7479b2448ce (patch) | |
tree | b4b8f98f100bf02c2fba73d9860749537906465f /pkgs/applications/video/clipgrab/yt-dlp-path.patch | |
parent | 3ddc71525fd0d12083620b8d2b181f62e73ffff0 (diff) |
clipgrab: supply yt-dlp dependency from nixpkgs
Diffstat (limited to 'pkgs/applications/video/clipgrab/yt-dlp-path.patch')
-rw-r--r-- | pkgs/applications/video/clipgrab/yt-dlp-path.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/applications/video/clipgrab/yt-dlp-path.patch b/pkgs/applications/video/clipgrab/yt-dlp-path.patch new file mode 100644 index 0000000000000..5a9a4b6dcc48d --- /dev/null +++ b/pkgs/applications/video/clipgrab/yt-dlp-path.patch @@ -0,0 +1,86 @@ +--- a/main.cpp ++++ b/main.cpp +@@ -91,14 +91,5 @@ int main(int argc, char *argv[]) + w.show(); + } + +- QTimer::singleShot(0, [=] { +- cg->getUpdateInfo(); +- QObject::connect(cg, &ClipGrab::updateInfoProcessed, [cg] { +- bool force = QSettings().value("forceYoutubeDlDownload", false).toBool(); +- if (force) QSettings().setValue("forceYoutubeDlDownload", false); +- cg->downloadYoutubeDl(force); +- }); +- }); +- + return app.exec(); + } +--- a/youtube_dl.cpp ++++ b/youtube_dl.cpp +@@ -8,52 +8,16 @@ YoutubeDl::YoutubeDl() + QString YoutubeDl::path = QString(); + + QString YoutubeDl::find(bool force) { +- if (!force && !path.isEmpty()) return path; +- +- // Prefer downloaded youtube-dl +- QString localPath = QStandardPaths::locate(QStandardPaths::AppDataLocation, "yt-dlp"); +- QProcess* process = instance(localPath, QStringList() << "--version"); +- process->start(); +- process->waitForFinished(); +- process->deleteLater(); +- if (process->state() != QProcess::NotRunning) process->kill(); +- if (process->exitCode() == QProcess::ExitStatus::NormalExit) { +- path = localPath; +- return path; +- } +- +- // Try system-wide youtube-dlp installation +- QString globalPath = QStandardPaths::findExecutable("yt-dlp"); +- process = instance(globalPath, QStringList() << "--version"); +- process->start(); +- process->waitForFinished(); +- process->deleteLater(); +- if (process->state() != QProcess::NotRunning) process->kill(); +- if (process->exitCode() == QProcess::ExitStatus::NormalExit) { +- path = globalPath; +- return path; +- } +- +- return ""; ++ // We supply yt-dlp from nixpkgs, so the downloading ++ // machinery is not needed anymore. ++ (void)force; ++ return path; + } + + QProcess* YoutubeDl::instance(QStringList arguments) { +- return instance(find(), arguments); +-} +- +-QProcess* YoutubeDl::instance(QString path, QStringList arguments) { + QProcess *process = new QProcess(); + +- QString execPath = QCoreApplication::applicationDirPath(); +- QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); +- env.insert("PATH", execPath + ":" + env.value("PATH")); +- process->setEnvironment(env.toStringList()); +- +- #if defined Q_OS_WIN +- process->setProgram(execPath + "/python/python.exe"); +- #else +- process->setProgram(QStandardPaths::findExecutable("python3")); +- #endif ++ process->setProgram(path); + + QSettings settings; + QStringList proxyArguments; +@@ -81,7 +45,7 @@ QProcess* YoutubeDl::instance(QString path, QStringList arguments) { + networkArguments << "--force-ipv4"; + } + +- process->setArguments(QStringList() << path << arguments << proxyArguments << networkArguments); ++ process->setArguments(QStringList() << arguments << proxyArguments << networkArguments); + return process; + } + |