#include "restaurants.hpp" #include "../network/network.hpp" #include "../htmlparser.hpp" void LunchRest::UDrevakaRestaurant::parse() { int menu_index = 0; Request r; auto html = r.get(_url); if(html == "") return; clearMenus(); HtmlParser hparse(html); auto &root = hparse.getRoot(); auto days = root.find("//li[@class='item-day']"); for(auto &day : days) { auto meals = day->find("./div[@class='row']"); for(auto meal : meals) { auto divs = meal->find(".//div/text()"); Meal meal_obj{}; std::string name = nodeToText(divs[0]); auto soup_pos = name.find("Polévka"); if(soup_pos != std::string::npos) { meal_obj.setSoup(); meal_obj.setName(name.substr(10, name.find('(') - 11)); } else { meal_obj.setName(name.substr(3, name.find('(') - 4)); } if(divs.size() > 1) { meal_obj.setPrice(std::stoi(nodeToText(divs[1]))); } menus[menu_index].addMeal(meal_obj); menus[menu_index].setInvalidMenu(false); } menu_index++; } }