S_New4/parameterManager.h

150 lines
3.9 KiB
C
Raw Normal View History

2019-07-06 18:47:29 +00:00
#ifndef PARAMETERMANAGER_H
#define PARAMETERMANAGER_H
2019-09-23 14:41:30 +00:00
#ifndef __linux__
#ifndef _WIN32
2019-09-23 17:44:29 +00:00
#error "Error Invalid System: Only for Linux and Windows systems!"
2019-09-19 17:15:23 +00:00
#endif
#endif
2019-09-19 17:13:31 +00:00
2019-07-06 18:47:29 +00:00
#include <iostream>
2019-07-07 16:30:37 +00:00
#include <getopt.h>
2019-09-01 08:40:36 +00:00
#include <string.h> // strlen
2019-07-08 18:17:11 +00:00
#include <sstream>
#include <sys/stat.h>
#include <fstream>
2019-09-01 08:40:36 +00:00
#include <vector>
2019-08-13 16:59:01 +00:00
#include <limits.h> // PATH_MAX
#include <unistd.h> // readlink()
#include <dirent.h>
2019-08-13 16:59:01 +00:00
2019-10-04 18:11:01 +00:00
2019-08-13 16:59:01 +00:00
#ifdef _WIN32
#include <windows.h>
#endif
2019-07-06 18:47:29 +00:00
enum Modus {
EXIT = -1,
DEFAULT_MODUS = 0,
DIRECT_LINK_MODUS = 1,
2019-08-13 16:59:01 +00:00
SEARCH_MODUS = 2,
2019-09-20 19:47:02 +00:00
INFO_MODUS = 3,
2019-10-13 12:28:53 +00:00
NEWS_MODUS = 4,
2019-10-26 14:27:46 +00:00
UPDATE_MODUS = 5,
REMOVE_SETTINGS_AND_CACHE_MODUS = 6
2019-08-03 19:48:27 +00:00
2019-07-06 18:47:29 +00:00
};
2019-10-17 16:10:13 +00:00
2019-07-06 18:47:29 +00:00
struct Settings {
Settings() {}
Settings(std::string name) : name(name) {}
2019-09-04 09:05:11 +00:00
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
2019-09-04 09:05:11 +00:00
std::string name,
accountFilePath = "",
accountNumberPath= "",
cookieFilePath = "",
serienListPath = "",
lastUpdateDateFilePath = "",
configDir="",
cacheDir="",
defaultsFilePath = "",
2019-07-07 16:30:37 +00:00
proxy_ip = "127.0.0.1",
languages = "GerDub,GerSub,Eng,",
2019-08-21 18:26:22 +00:00
genaueHoster = "",
2019-10-27 09:55:53 +00:00
version = "3.4.0",
defaultFileVersion="1.6",
2019-08-03 19:48:27 +00:00
outputFilePath = "",
default_checkPath = "",
2019-08-13 16:59:01 +00:00
default_Searchmuster = "S%Staffel%E%Folge%";
2019-08-03 19:48:27 +00:00
2019-10-27 18:13:11 +00:00
Modus modus = Modus::EXIT;
2019-07-08 18:17:11 +00:00
bool colorless = false,
debugMode = false,
search_IgnoreUpperLower = true,
search_wantUpdate = false,
askForEveryDir = true;
2019-07-08 18:17:11 +00:00
int startEpisode = 1,
stopEpisode = 0,
startSeason = 1,
stopSeason = 0,
2019-08-03 19:48:27 +00:00
proxy_port = 9050,
2019-10-04 18:11:01 +00:00
default_maxDirs = 20,
updateWarningDays = 10;
2019-08-13 16:59:01 +00:00
char pathSymbol = '/';
2019-08-16 12:34:44 +00:00
unsigned maxThreads = 0;
2019-07-08 18:17:11 +00:00
2019-07-06 18:47:29 +00:00
};
int manageParameter(Settings &settings, int argc, char ** argv);
2019-08-17 14:03:28 +00:00
int loadDefaulOptions(Settings & settings);
std::vector<std::string> compare(std::string All_Options_with_komma_between, std::string input);
bool isNumber(std::string number);
2019-07-07 16:30:37 +00:00
int setPaths(Settings &settings);
2019-08-13 16:59:01 +00:00
2019-08-17 14:03:28 +00:00
bool fileExists (const std::string& name);
bool dirExists(std::string dir);
bool nothingExists(std::string path);
2019-08-31 18:35:11 +00:00
bool createDirIsOk(std::string path);
bool makePathIsOk(std::string path);
bool removeDirIsOk(std::string path, Settings *settings);
2019-08-13 16:59:01 +00:00
int unterOption_help(Settings &settings);
void unterOption_printVersion(Settings &settings);
2019-07-07 16:30:37 +00:00
int unterOption_default(Settings * settings, int argc, char **argv);
void unterOption_default_help(std::string programName);
2019-07-07 16:30:37 +00:00
int unterOption_url(Settings * settings, int argc, char **argv);
void unterOption_url_help(std::string programName);
2019-07-07 16:30:37 +00:00
int unterOption_search(Settings * settings, int argc, char **argv);
void unterOption_search_help(std::string programName);
2019-08-13 16:59:01 +00:00
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);
2019-09-20 19:47:02 +00:00
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);
2019-07-06 18:47:29 +00:00
2019-10-26 14:27:46 +00:00
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);
2019-07-06 18:47:29 +00:00
#endif // PARAMETERMANAGER_H