Add try/catch
This commit is contained in:
parent
ae57b4c06e
commit
913c8fd168
@ -10,6 +10,7 @@ void LunchRest::MahostinaRestaurant::parse() {
|
|||||||
if (html == "")
|
if (html == "")
|
||||||
return;
|
return;
|
||||||
clearMenus();
|
clearMenus();
|
||||||
|
try {
|
||||||
HtmlParser hparse(html);
|
HtmlParser hparse(html);
|
||||||
auto &root = hparse.getRoot();
|
auto &root = hparse.getRoot();
|
||||||
auto today_lists = root.find(
|
auto today_lists = root.find(
|
||||||
@ -36,4 +37,10 @@ void LunchRest::MahostinaRestaurant::parse() {
|
|||||||
std::stoi(text.substr(price_start, price_end - price_start)));
|
std::stoi(text.substr(price_start, price_end - price_start)));
|
||||||
}
|
}
|
||||||
menus[day].setInvalidMenu(false);
|
menus[day].setInvalidMenu(false);
|
||||||
|
} catch (std::exception &/*UNUSED*/) {
|
||||||
|
clearMenus();
|
||||||
|
for(int i = 0; i < menus.size(); i++) {
|
||||||
|
menus[i].addMeal(false, parseError, parseInfo, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "menicka.hpp"
|
#include "menicka.hpp"
|
||||||
|
#include "restaurants.hpp"
|
||||||
#include "../network/network.hpp"
|
#include "../network/network.hpp"
|
||||||
#include "../htmlparser.hpp"
|
#include "../htmlparser.hpp"
|
||||||
#include "functions.hpp"
|
#include "functions.hpp"
|
||||||
@ -24,6 +25,7 @@ void LunchRest::MenickaRestaurant::parse() {
|
|||||||
if(html == "")
|
if(html == "")
|
||||||
return;
|
return;
|
||||||
clearMenus();
|
clearMenus();
|
||||||
|
try {
|
||||||
HtmlParser hparse(html);
|
HtmlParser hparse(html);
|
||||||
auto &root = hparse.getRoot();
|
auto &root = hparse.getRoot();
|
||||||
auto days = root.find("//div[@class='menicka']");
|
auto days = root.find("//div[@class='menicka']");
|
||||||
@ -70,4 +72,10 @@ void LunchRest::MenickaRestaurant::parse() {
|
|||||||
menus[cur_day].setInvalidMenu(false);
|
menus[cur_day].setInvalidMenu(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (std::exception &/*UNUSED*/) {
|
||||||
|
clearMenus();
|
||||||
|
for(int i = 0; i < menus.size(); i++) {
|
||||||
|
menus[i].addMeal(false, parseError, parseInfo, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#include <libxml++/libxml++.h>
|
#include <libxml++/libxml++.h>
|
||||||
|
|
||||||
namespace LunchRest {
|
namespace LunchRest {
|
||||||
|
const std::string parseError = "Could not retreive menu";
|
||||||
|
const std::string parseInfo = "Please contact the developer, likely the restaurant website changed and requires a new parser";
|
||||||
class UKarlaRestaurant : public Restaurant {
|
class UKarlaRestaurant : public Restaurant {
|
||||||
public:
|
public:
|
||||||
UKarlaRestaurant() : Restaurant("https://ukarlabrno.cz/denni-menu/", "U Karla") {}
|
UKarlaRestaurant() : Restaurant("https://ukarlabrno.cz/denni-menu/", "U Karla") {}
|
||||||
|
@ -37,6 +37,7 @@ void LunchRest::TaoRestaurant::parse() {
|
|||||||
if (html == "")
|
if (html == "")
|
||||||
return;
|
return;
|
||||||
clearMenus();
|
clearMenus();
|
||||||
|
try {
|
||||||
HtmlParser hparse(html);
|
HtmlParser hparse(html);
|
||||||
auto &root = hparse.getRoot();
|
auto &root = hparse.getRoot();
|
||||||
auto week_meals_html =
|
auto week_meals_html =
|
||||||
@ -112,4 +113,10 @@ void LunchRest::TaoRestaurant::parse() {
|
|||||||
menus[cur_day].setInvalidMenu(false);
|
menus[cur_day].setInvalidMenu(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (std::exception &/*UNUSED*/) {
|
||||||
|
clearMenus();
|
||||||
|
for(int i = 0; i < menus.size(); i++) {
|
||||||
|
menus[i].addMeal(false, parseError, parseInfo, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ void LunchRest::UKarlaRestaurant::parse() {
|
|||||||
if(html == "")
|
if(html == "")
|
||||||
return;
|
return;
|
||||||
clearMenus();
|
clearMenus();
|
||||||
|
try {
|
||||||
HtmlParser hparse(html);
|
HtmlParser hparse(html);
|
||||||
auto &root = hparse.getRoot();
|
auto &root = hparse.getRoot();
|
||||||
auto days = root.find("//li[@class='item-day']");
|
auto days = root.find("//li[@class='item-day']");
|
||||||
@ -20,6 +21,10 @@ void LunchRest::UKarlaRestaurant::parse() {
|
|||||||
for(auto &meal : meals) {
|
for(auto &meal : meals) {
|
||||||
auto soup = false;
|
auto soup = false;
|
||||||
auto texts = meal->find("./div/text()");
|
auto texts = meal->find("./div/text()");
|
||||||
|
if(texts.empty()) {
|
||||||
|
menus[menu_index].addMeal(false, parseError, parseInfo, 0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
std::string name = trim(nodeToText(texts[0]));
|
std::string name = trim(nodeToText(texts[0]));
|
||||||
if(name[0] == 'P') {
|
if(name[0] == 'P') {
|
||||||
soup = true;
|
soup = true;
|
||||||
@ -35,4 +40,10 @@ void LunchRest::UKarlaRestaurant::parse() {
|
|||||||
}
|
}
|
||||||
menu_index++;
|
menu_index++;
|
||||||
}
|
}
|
||||||
|
} catch (std::exception &/*UNUSED*/) {
|
||||||
|
clearMenus();
|
||||||
|
for(int i = 0; i < menus.size(); i++) {
|
||||||
|
menus[i].addMeal(false, parseError, parseInfo, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user