#include "RelationshipHandler.hpp" #include #include #include using namespace std; //Takk til https://www.geeksforgeeks.org/split-a-sentence-into-words-in-cpp/ //fucking c++ does not has a split function like every other programming language in the world vector removeDupWord(const string& str) { vector v = {}; string word; // = ""; for(auto x : str) { if(x == ' ') { if(word != "/relation") { v.push_back(word); } word = ""; } else { word += x; } } v.push_back(word); return v; } vector buildCalArr(vector nameV) { string ges = nameV.at(0) + nameV.at(1); for(auto& c : ges) { c = tolower(c); } vector v = {}; for(auto c1 : ges) { //cout << c1 << '\n'; int count = 0; for(auto c2: ges) { if(c1==c2) { ++count; } } v.push_back(count); } //cout << ges << endl; /*for(auto i: v) { cout << i << ' '; } cout << v.size() << "\n";*/ return v; } int calculate(vector names) { sort(names.begin(), names.end()); vector nums = buildCalArr(names); while(nums.size() > 2) { vector tempNums = {}; for(std::size_t i=0;i names) { //vector names = removeDupWord(str); if(names.size() != 2) { return "Gib zwei Namen ein Du Troll!"; } if(!isAlphaNum(names.at(0))) { return "Seit wann enthælt ein Name Sonderzeichen oder Zahlen? Spüre den Zorn von N!"; } if(!isAlphaNum(names.at(1))) { return "Seit wann enthælt ein Name Sonderzeichen oder Zahlen? Spüre den Zorn von N!"; } int result = calculate(names); return (names.at(0) + " und " + names.at(1) + " passen nach Angaben von N zu " + to_string(result) + "% zusammen. Gratuliere!\n"); } void RelationshipHandler::onCall(Mongoose::Request& request, Mongoose::JsonResponse& response) { std::cout << "/relation was called\n"; response["text"] = rsStart(vector{request.get("name1", "Lukas"), request.get("name2", "cpp")}); response["success"] = "1"; response["session"] = "NULL"; /*if (messagePtr->date > telegram->getBootDate()) { log(messagePtr->from->username + ": "+messagePtr->text); telegram->sendMessage(messagePtr->chat->id, rsStart(messagePtr->text)); }*/ }