#include "accountManager.h" AccountManager::AccountManager(std::string pathToFile, std::string pathToAccountNumberFile) : pathToAccountNumberFile(pathToAccountNumberFile) { std::ifstream ifs(pathToFile); if(!ifs.is_open()) { if(writeDefault(pathToFile) != 0) exit(12); ifs.open(pathToFile); if(!ifs.is_open()) { std::cout << "Konnte Account File nicht öffnen" << std::endl; exit(13); } } std::string line; while (std::getline(ifs, line)) { if(line.length() > 0 && line[0] == '#') continue; Account account; size_t Delimeter = line.find("/"); if(Delimeter == std::string::npos) { account.Email = line; account.Password = line; } else { account.Email = std::string(line).erase(Delimeter, line.length() - Delimeter); account.Password = line.erase(0, Delimeter + 1); } if(account.Email == "" || account.Password == "") continue; else accounts.push_back(account); } ifs.close(); } Account AccountManager::getNextAccount() { if(accounts.size() == 0) { std::cout << "Keine Accounts vorhanden." << std::endl; exit(36); } size_t accountNumber = getLastAccountNumber(); accountNumber++; if( accountNumber >= accounts.size() ) accountNumber=0; if(setLastAccountNumber(accountNumber) != 0) exit(45); return accounts.at(accountNumber); } int AccountManager::writeDefault(std::string path) { std::ofstream ofs(path); if(!ofs.is_open()) { perror((std::string("Konnte Account Datei nicht öffnen: ") + path).c_str()); return -1; } std::cout << "Erstelle Datei mit Accounts unter: " << path << "..." <(fStream) ), (std::istreambuf_iterator() ) ); return static_cast( atoi(content.c_str()) ); } int AccountManager::setLastAccountNumber(size_t number) { std::ofstream ofs; ofs.open(pathToAccountNumberFile, std::ios::trunc); if(!ofs.is_open()) { std::cout << "Account Number Datei ist nicht geöffnet." << std::endl; return 110; } //fStream.clear(); ofs << number << std::endl; return 0; } bool AccountManager::isDirExist(const std::string& path) { struct stat info; if (stat(path.c_str(), &info) != 0) { return false; } return (info.st_mode & S_IFDIR) != 0; } bool AccountManager::createDir(std::string path, std::string atLinux) { return system(std::string("mkdir " + atLinux + "'" + path +"'").c_str()); // -p if is linux }