forked from markus/S_New4
v 2.4.0: fix error mit startstop epidodenseason &&&& -C kann nun auch textdateien
This commit is contained in:
parent
81d4a9f6f4
commit
e4651531b2
@ -434,9 +434,9 @@ int unterOption_default(Settings *settings, int argc, char ** argv)
|
|||||||
case 'C':
|
case 'C':
|
||||||
if(!optarg)
|
if(!optarg)
|
||||||
break;
|
break;
|
||||||
settings->default_checkDirPath = optarg;
|
settings->default_checkPath = optarg;
|
||||||
if(settings->debugMode)
|
if(settings->debugMode)
|
||||||
std::cout << "To check Dir: " << settings->default_checkDirPath << std::endl;
|
std::cout << "To check Dir/File: " << settings->default_checkPath << std::endl;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
settings->colorless = true;
|
settings->colorless = true;
|
||||||
@ -506,8 +506,10 @@ void unterOption_default_help()
|
|||||||
<< std::endl
|
<< std::endl
|
||||||
<< " > Check-Dir Optionen:" << std::endl
|
<< " > Check-Dir Optionen:" << std::endl
|
||||||
<< "\t-C [Pfad], --check-dir [Pfad]" << std::endl
|
<< "\t-C [Pfad], --check-dir [Pfad]" << std::endl
|
||||||
<< "\t -> Überprüfe ob in diesem, oder in einen der Unterordnern die Folge vorkommt." << std::endl
|
<< "\t +Ordner -> Überprüfe ob in diesem, oder in einen der Unterordnern (beachte -D und -m) die" << std::endl
|
||||||
<< "\t -> Wenn ja, dann überspringe diese." << std::endl
|
<< "\t -> Folge vorkommt. Wenn ja, dann überspringe diese." << std::endl
|
||||||
|
<< "\t +Datei -> Überprüfe ob in der angegebenen Textdatei eine Zeile mit dem Muster vorkommt" << std::endl
|
||||||
|
<< "\t -> (beachte -D und -m). Wenn ja, dann überspringe diese." << std::endl
|
||||||
<< "\t-m, --check-muster" << std::endl
|
<< "\t-m, --check-muster" << std::endl
|
||||||
<< "\t -> Muster mit dem Überprüft wird, ob diese Folge in einem Ordner ist. Default: S%Staffel%E%Folge%" << std::endl
|
<< "\t -> Muster mit dem Überprüft wird, ob diese Folge in einem Ordner ist. Default: S%Staffel%E%Folge%" << std::endl
|
||||||
<< "\t -> %Staffel% ist eine Variable für die Staffel mit 0 + Staffel, wenn Staffel < 10. " << std::endl
|
<< "\t -> %Staffel% ist eine Variable für die Staffel mit 0 + Staffel, wenn Staffel < 10. " << std::endl
|
||||||
|
@ -37,10 +37,10 @@ struct Settings {
|
|||||||
proxy_ip = "127.0.0.1",
|
proxy_ip = "127.0.0.1",
|
||||||
languages = "GerDub,GerSub,Eng",
|
languages = "GerDub,GerSub,Eng",
|
||||||
genaueHoster = "Vivo,GoUnlimited",
|
genaueHoster = "Vivo,GoUnlimited",
|
||||||
version = "2.3.2",
|
version = "2.4.0",
|
||||||
defaultFileVersion="1.3",
|
defaultFileVersion="1.3",
|
||||||
outputFilePath = "",
|
outputFilePath = "",
|
||||||
default_checkDirPath = "",
|
default_checkPath = "",
|
||||||
default_Searchmuster = "S%Staffel%E%Folge%";
|
default_Searchmuster = "S%Staffel%E%Folge%";
|
||||||
|
|
||||||
Modus modus = Modus::DEFAULT_MODUS;
|
Modus modus = Modus::DEFAULT_MODUS;
|
||||||
|
@ -136,14 +136,14 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
|
|
||||||
//Wenn kein Name mit -n Angegeben wurde:
|
//Wenn kein Name mit -n Angegeben wurde:
|
||||||
if(settings->name == "") {
|
if(settings->name == "") {
|
||||||
if(settings->default_checkDirPath != "") {
|
if(settings->default_checkPath != "") {
|
||||||
if(settings->default_checkDirPath[settings->default_checkDirPath.length()-1] == settings->pathSymbol)
|
if(settings->default_checkPath[settings->default_checkPath.length()-1] == settings->pathSymbol)
|
||||||
settings->default_checkDirPath.pop_back();
|
settings->default_checkPath.pop_back();
|
||||||
size_t pos = settings->default_checkDirPath.find_last_of(std::string(1, settings->pathSymbol));
|
size_t pos = settings->default_checkPath.find_last_of(std::string(1, settings->pathSymbol));
|
||||||
if( pos != std::string::npos) {
|
if( pos != std::string::npos) {
|
||||||
settings->name = settings->default_checkDirPath.substr(pos + 1);
|
settings->name = settings->default_checkPath.substr(pos + 1);
|
||||||
if(settings->debugMode)
|
if(settings->debugMode)
|
||||||
std::cout << " > Use Path for Name: " << settings->default_checkDirPath << " -> " << settings->name << std::endl;
|
std::cout << " > Use Path from -C for Name: " << settings->default_checkPath << " -> " << settings->name << std::endl;
|
||||||
}
|
}
|
||||||
} if(settings->name == "") {
|
} if(settings->name == "") {
|
||||||
std::cout << " => Error: Kein Name angegeben." << std::endl;
|
std::cout << " => Error: Kein Name angegeben." << std::endl;
|
||||||
@ -154,7 +154,7 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Überprüfe ob ein Muster existiert:
|
//Überprüfe ob ein Muster existiert:
|
||||||
if(settings->default_checkDirPath != "" && settings->default_Searchmuster == "") {
|
if(settings->default_checkPath != "" && settings->default_Searchmuster == "") {
|
||||||
std::cout << " => Error: [-m]: Kein Muster angegeben." << std::endl;
|
std::cout << " => Error: [-m]: Kein Muster angegeben." << std::endl;
|
||||||
return 31;
|
return 31;
|
||||||
}
|
}
|
||||||
@ -162,18 +162,15 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
|
|
||||||
//Liste alle Dateien in dem Ornder von -C auf und speichere diese
|
//Liste alle Dateien in dem Ornder von -C auf und speichere diese
|
||||||
std::string dirFiles;
|
std::string dirFiles;
|
||||||
if(settings->default_checkDirPath != "")
|
if(settings->default_checkPath != "")
|
||||||
if(listDir(dirFiles, settings->default_checkDirPath, settings->default_maxDirs ) != 0)
|
if(listDir(dirFiles, settings->default_checkPath, settings->default_maxDirs ) != 0)
|
||||||
return 28;
|
return 28;
|
||||||
|
if(dirFiles.length() > 0) //Entferne von der liste das \n am ende
|
||||||
//Entferne von der liste das \n am ende
|
|
||||||
if(dirFiles.length() > 0)
|
|
||||||
dirFiles.pop_back();
|
dirFiles.pop_back();
|
||||||
|
if(settings->debugMode && settings->default_checkPath != "") //Wenn Debug Mode, gib die Liste aus
|
||||||
//Wenn Debug Mode, gib die Liste aus
|
|
||||||
if(settings->debugMode && settings->default_checkDirPath != "")
|
|
||||||
std::cout << " > [-C] Files:\n" << dirFiles << std::endl;
|
std::cout << " > [-C] Files:\n" << dirFiles << std::endl;
|
||||||
|
|
||||||
|
|
||||||
//Führe Function aus, die überprüft ob die serie existiert
|
//Führe Function aus, die überprüft ob die serie existiert
|
||||||
std::string nameInUrl =pageManager.checkName(settings->name);
|
std::string nameInUrl =pageManager.checkName(settings->name);
|
||||||
if(nameInUrl == "-1") {
|
if(nameInUrl == "-1") {
|
||||||
@ -224,7 +221,7 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
//For every season
|
//For every season
|
||||||
for (int staffel = settings->startSeason; staffel <= maxStaffel; ++staffel) {
|
for (int staffel = settings->startSeason; staffel <= maxStaffel; ++staffel) {
|
||||||
//Test for stopping Program caused -E, -S
|
//Test for stopping Program caused -E, -S
|
||||||
if(staffel > settings->stopSeason && settings->stopSeason >= 1) {
|
if(staffel > settings->stopSeason && settings->stopSeason > 0) {
|
||||||
if(settings->debugMode)
|
if(settings->debugMode)
|
||||||
std::cout << " > Stoppe, weil Staffel: " << staffel << " > StopStaffel " << settings->stopSeason << std::endl;
|
std::cout << " > Stoppe, weil Staffel: " << staffel << " > StopStaffel " << settings->stopSeason << std::endl;
|
||||||
std::cout << " > Fertig, da Staffel " << staffel << " größer ist als StopStaffel " << settings->stopSeason << std::endl;
|
std::cout << " > Fertig, da Staffel " << staffel << " größer ist als StopStaffel " << settings->stopSeason << std::endl;
|
||||||
@ -242,15 +239,15 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
|
|
||||||
//for every episode
|
//for every episode
|
||||||
for (int folge = settings->startEpisode; folge <= maxFolge; ++folge) {
|
for (int folge = settings->startEpisode; folge <= maxFolge; ++folge) {
|
||||||
// stoppe wenn stopfolge größer der folge ist und stopstaffel nicht gesetzt wurde.
|
// stoppe wenn stopfolge größer der folge ist und stopstaffel nicht gesetzt wurde. und stopepisode gröser 0, also aktiv ist
|
||||||
if(folge > settings->stopEpisode && settings->stopSeason < 1) {
|
if(folge > settings->stopEpisode && settings->stopSeason < 1 && settings->stopEpisode > 0) {
|
||||||
if(settings->maxThreads != 0)
|
if(settings->maxThreads != 0)
|
||||||
if(waitForThreads() != 0)
|
if(waitForThreads() != 0)
|
||||||
return 261;
|
return 261;
|
||||||
std::cout << " > Fertig, da Folge " << folge << " größer ist als Stopfolge " << settings->stopEpisode << "."<< std::endl;
|
std::cout << " > Fertig, da Folge " << folge << " größer ist als Stopfolge " << settings->stopEpisode << "."<< std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
} else if ( folge > settings->stopEpisode && staffel >= settings->stopSeason) { // stoppe wenn stopfolge > folge && stopstaffel >= staffel
|
} else if ( folge > settings->stopEpisode && staffel >= settings->stopSeason && settings->stopEpisode > 0) { // stoppe wenn stopfolge > folge && stopstaffel >= staffel und stopepisode gröser 0, also aktiv ist
|
||||||
if(settings->maxThreads != 0)
|
if(settings->maxThreads != 0)
|
||||||
if(waitForThreads() != 0)
|
if(waitForThreads() != 0)
|
||||||
return 267;
|
return 267;
|
||||||
@ -260,7 +257,7 @@ int ProgramManager::defaultModus(Settings *settings)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Überprüfe ob, wenn -C vorhanden, die Folge in dem Ordner bereits vorkommt.
|
//Überprüfe ob, wenn -C vorhanden, die Folge in dem Ordner bereits vorkommt.
|
||||||
if(settings->default_checkDirPath != "") {
|
if(settings->default_checkPath != "") {
|
||||||
if(dirFiles.find(pageManager.replace( pageManager.replace( settings->default_Searchmuster, "%Staffel%", ((staffel < 10) ? "0" : "") + std::to_string(staffel) ),
|
if(dirFiles.find(pageManager.replace( pageManager.replace( settings->default_Searchmuster, "%Staffel%", ((staffel < 10) ? "0" : "") + std::to_string(staffel) ),
|
||||||
"%Folge%", ((folge < 10) ? "0" : "") + std::to_string(folge) ) ) != std::string::npos) {
|
"%Folge%", ((folge < 10) ? "0" : "") + std::to_string(folge) ) ) != std::string::npos) {
|
||||||
if(settings->debugMode)
|
if(settings->debugMode)
|
||||||
@ -617,10 +614,21 @@ int ProgramManager::searchModus_update(Settings *settings)
|
|||||||
|
|
||||||
int ProgramManager::listDir(std::string &list,std::string path, int maxDepth)
|
int ProgramManager::listDir(std::string &list,std::string path, int maxDepth)
|
||||||
{
|
{
|
||||||
if(maxDepth <= 0)
|
//Wenn Pfad zu einem TextFile geht
|
||||||
|
if(fileExists(path)) {
|
||||||
|
std::ifstream ifs(path);
|
||||||
|
if(!ifs.is_open()) {
|
||||||
|
perror(" => Error: Konnte Textdatei nicht öffnen.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
list = std::string((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
} // Sonst normal Ordner listen
|
||||||
|
else if(maxDepth <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
else if(!dirExists(path)) {
|
else if(!dirExists(path)) {
|
||||||
std::cout << " => Error: Verzeichnis '" << path << "' existiert nicht oder ist kein Ordner." << std::endl;
|
std::cout << " => Error: Verzeichnis '" << path << "' existiert nicht oder ist kein Ordner oder Textdatei." << std::endl;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user