nixpkgs/pkgs/applications/video/clipgrab/yt-dlp-path.patch
2022-02-19 00:43:35 +03:00

87 lines
2.8 KiB
Diff

--- 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;
}