#ifndef PARAMETERMANAGER_H #define PARAMETERMANAGER_H #ifndef __linux__ #ifndef _WIN32 #error "Error Invalid System: Only for Linux and Windows systems!" #endif #endif #include #include #include // strlen #include #include #include #include #include // PATH_MAX #include // readlink() #include #ifdef _WIN32 #include #endif enum Modus { EXIT = -1, DEFAULT_MODUS = 0, DIRECT_LINK_MODUS = 1, SEARCH_MODUS = 2, INFO_MODUS = 3, NEWS_MODUS = 4, UPDATE_MODUS = 5, REMOVE_SETTINGS_AND_CACHE_MODUS = 6 }; struct Settings { Settings() {} Settings(std::string name) : name(name) {} const std::string programName = "S_New4"; #ifdef __linux const std::string VersionFileUrl = "https://cloud.obermui.de/s/H47Xoqy2czfJzYp/download?path=%2F&files=Version-LINx86.txt"; const std::string ProgrammFileUrl = "https://cloud.obermui.de/s/H47Xoqy2czfJzYp/download?path=%2F&files=S_New4-LINx86"; #endif #ifdef _WIN32 const std::string VersionFileUrl = "https://cloud.obermui.de/s/H47Xoqy2czfJzYp/download?path=%2F&files=Version-WINx86.txt"; const std::string ProgrammFileUrl = "https://cloud.obermui.de/s/H47Xoqy2czfJzYp/download?path=%2F&files=S_New4-WINx86.exe"; #endif std::string name, accountFilePath = "", accountNumberPath= "", cookieFilePath = "", serienListPath = "", lastUpdateDateFilePath = "", configDir="", cacheDir="", defaultsFilePath = "", proxy_ip = "127.0.0.1", languages = "GerDub,GerSub,Eng,", genaueHoster = "", version = "3.4.5", defaultFileVersion="1.6", outputFilePath = "", default_checkPath = "", default_Searchmuster = "S%Staffel%E%Folge%"; Modus modus = Modus::EXIT; bool colorless = false, debugMode = false, search_IgnoreUpperLower = true, search_wantUpdate = false, askForEveryDir = true; int startEpisode = 1, stopEpisode = 0, startSeason = 1, stopSeason = 0, proxy_port = 9050, default_maxDirs = 20, updateWarningDays = 10; char pathSymbol = '/'; unsigned maxThreads = 0; }; int manageParameter(Settings &settings, int argc, char ** argv); int loadDefaulOptions(Settings & settings); std::vector compare(std::string All_Options_with_komma_between, std::string input); bool isNumber(std::string number); int setPaths(Settings &settings); bool fileExists (const std::string& name); bool dirExists(std::string dir); bool nothingExists(std::string path); bool createDirIsOk(std::string path); bool makePathIsOk(std::string path); bool removeDirIsOk(std::string path, Settings *settings); int unterOption_help(Settings &settings); void unterOption_printVersion(Settings &settings); int unterOption_default(Settings * settings, int argc, char **argv); void unterOption_default_help(std::string programName); int unterOption_url(Settings * settings, int argc, char **argv); void unterOption_url_help(std::string programName); int unterOption_search(Settings * settings, int argc, char **argv); void unterOption_search_help(std::string programName); int unterOption_info(Settings * settings, int argc, char **argv); void unterOption_info_help(std::string programName); void unterOption_clean(Settings * settings, int argc, char **argv); int unterOption_news(Settings * settings, int argc, char **argv); void unterOption_news_help(std::string programName); int unterOption_update(Settings * settings, int argc, char **argv); void unterOption_update_help(std::string programName); int unterOption_RemoveSettings_or_CacheDir(Settings * settings, int argc, char **argv); void unterOption_RemoveSettings_or_CacheDire_help(std::string programName); int setS5ProxytoSettings(Settings &settings, std::string optarg); #endif // PARAMETERMANAGER_H