From ef88786e5763a83d148a916caccc7efc056a8c5c Mon Sep 17 00:00:00 2001 From: Markus Date: Fri, 16 Aug 2019 14:34:44 +0200 Subject: [PATCH] setup getops --- pageManager.cpp | 1 - parameterManager.cpp | 33 +++++++++++++++++++++++++++------ parameterManager.h | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/pageManager.cpp b/pageManager.cpp index 4d190a4..0222bd1 100644 --- a/pageManager.cpp +++ b/pageManager.cpp @@ -10,7 +10,6 @@ PageManager::~PageManager() { remove(cookieFilePath.c_str()); curl_global_cleanup(); - } void PageManager::setProxy(std::string ip, int port) diff --git a/parameterManager.cpp b/parameterManager.cpp index c56df48..8e54e01 100644 --- a/parameterManager.cpp +++ b/parameterManager.cpp @@ -79,7 +79,8 @@ int unterOption_help() << "\t„--version“\tVersion des Programmes" << std::endl << "\t„url“\t\tModus um eigene Redirect-Links umzuwandeln." << std::endl << "\t„default“\tModus um Links von Serien zu bekommen." << std::endl - << "\t„search“\tModus um Serien zu suchen." << std::endl; + << "\t„search“\tModus um Serien zu suchen." << std::endl + << "\t„info“\tModus um Infos einer Serien zu bekommen." << std::endl; return -1; } @@ -103,8 +104,9 @@ int unterOption_default(Settings *settings, int argc, char ** argv) {"check-dir", required_argument, nullptr, 'C'}, {"check-muster", required_argument, nullptr, 'm'}, - {"check-max-dirs", required_argument, nullptr, 't'}, + {"check-max-dirs", required_argument, nullptr, 'D'}, + {"threads", required_argument, nullptr, 't'}, {"help", no_argument, nullptr, 'h'}, {"colorless", no_argument, nullptr, 'c'}, @@ -114,7 +116,7 @@ int unterOption_default(Settings *settings, int argc, char ** argv) }; - while( ( c = getopt_long (argc, argv, "p:g:l:o:e:E:s:S:C:m:t:hcd", long_opts, nullptr) ) != -1 ) { + while( ( c = getopt_long (argc, argv, "p:g:l:o:e:E:s:S:C:m:D:t:hcd", long_opts, nullptr) ) != -1 ) { switch(c) { case 'p': { if(!optarg || std::string(optarg) == "") @@ -218,18 +220,31 @@ int unterOption_default(Settings *settings, int argc, char ** argv) if(settings->debugMode) std::cout << "SearchMuster: " << settings->default_Searchmuster << std::endl; break; - case 't': + case 'D': if(!optarg) break; settings->default_maxDirs = atoi(optarg); if(std::to_string(settings->default_maxDirs) != std::string(optarg) ) { - std::cout << "[-t]: Invalid Count: " << optarg << std::endl; + std::cout << "[-D]: Invalid Count: " << optarg << std::endl; return 18; } if(settings->debugMode) std::cout << "SearchMuster: " << settings->default_Searchmuster << std::endl; break; + case 't': + if(!optarg) + break; + settings->maxThreads = static_cast(atoi(optarg)); + if(std::to_string(settings->maxThreads) != std::string(optarg) ) { + std::cout << "[-t]: Ungültige Zahl: " << optarg << std::endl; + return 18; + } + if(settings->debugMode) + std::cout << "SearchMuster: " << settings->default_Searchmuster << std::endl; + + break; + case 'C': if(!optarg) break; @@ -311,7 +326,7 @@ void unterOption_default_help() << "\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 -> %Folge% ist eine Variable für die Folge mit 0 + Folge, wenn Folge < 10. " << std::endl - << "\t-t, --check-max-dirs" << std::endl + << "\t-D, --check-max-dirs" << std::endl << "\t -> Maximale Anzahl der Ordner, die auf Dateien untersucht werden. Default: 20" << std::endl << std::endl << " > Durchlaufoptionen:" << std::endl @@ -329,6 +344,12 @@ void unterOption_default_help() << "\t-S [Staffel], --stop-season [Staffel]" << std::endl << "\t -> Das Programm stopt mit dieser Staffel. Beachte Verwendung mit -E." << std::endl << "\t Zum deaktivieren Staffel <= 0 verwenden. Default: 0" << std::endl + << " > Multi-Thrading Optionen:" << std::endl + << "\t-t [maxThreads], --threads [maxThreads]" << std::endl + << "\t -> Das Programm startet für jede Folge einen eigenen Thread," << std::endl + << "\t -> bis die maximale Anzahl ereicht wurde. Dann wartet es auf" << std::endl + << "\t -> das enden aller Threads und fängt dann wieder von vorne an." << std::endl + << "\t -> Zum deaktivieren von Multithreading '0' verwenden. Default: 0" << std::endl << std::endl << " > Help-Optionen" << std::endl << "\t-h, --help" << std::endl; diff --git a/parameterManager.h b/parameterManager.h index 26dc80b..f218d7c 100644 --- a/parameterManager.h +++ b/parameterManager.h @@ -53,7 +53,7 @@ struct Settings { proxy_port = 9050, default_maxDirs = 20; char pathSymbol = '/'; - unsigned maxThreads = 5; + unsigned maxThreads = 0; };