-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathyoutubedl.cpp
90 lines (80 loc) · 2.52 KB
/
youtubedl.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "youtubedl.h"
#ifdef _WIN32
#define OS QString("./")
#elif __LINUX__
#define OS QSrtring("")
#endif
#include <QDebug>
YoutubeDL::YoutubeDL(const QString& _url, const QString& _fichierDestination, const bool& _musiqueSeule, QObject *parent) : QProcess(parent),
url(_url),
fichierDestination(_fichierDestination),
program(OS+"youtube-dl"),
version("Inconnue"),
derniereVersion("Inconnue"),
musiqueSeule(_musiqueSeule),
corrigerNomFichier(true),
playlistComplete(false),
state(NotRunning)
{
}
void YoutubeDL::telecharger()
{
}
void YoutubeDL::verifierMisesAJour()
{
if(state == NotRunning)
{
state = WaitingResult;
version = "Inconnue";
derniereVersion = "Inconnue";
arguments.clear();
arguments << "--version";
connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(recevoirVersion()));
start(program, arguments);
WebPageDownloader *youtubedlWebsite = new WebPageDownloader("https://rg3.github.io/youtube-dl/download.html");
connect(youtubedlWebsite, SIGNAL(telechargementTermine(QByteArray)), this, SLOT(recevoirYoutubeDLWebsite(QByteArray)));
connect(youtubedlWebsite, SIGNAL(telechargementTermine(QByteArray)), youtubedlWebsite, SLOT(deleteLater()));
youtubedlWebsite->start();
}
}
void YoutubeDL::recevoirVersion()
{
version = readAll();
version.remove('\n');
version.remove('\r');
disconnect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(recevoirVersion()));
if(derniereVersion != "Inconnue")
{
state = NotRunning;
emit(estAJour(version, derniereVersion));
}
}
void YoutubeDL::recevoirYoutubeDLWebsite(QByteArray site)
{
derniereVersion = site;
derniereVersion = derniereVersion.split("/youtube-dl\">")[1].split("</a> (<a href=\"https://yt-dl.org/downloads/")[0];
if(version != "Inconnue")
{
state = NotRunning;
emit(estAJour(version, derniereVersion));
}
}
void YoutubeDL::mettreAJour()
{
if(state == NotRunning)
{
state = Running;
program = "pip install youtube-dl";
arguments.clear();
arguments.append("-U");
connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(miseAJourTerminee()));
start(program, arguments);
}
}
void YoutubeDL::miseAJourTerminee()
{
disconnect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(miseAJourTerminee()));
arguments.clear();
program = OS + "youtube-dl";
state = NotRunning;
}