diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 22f7d892c..ab5b69b3f 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include @@ -814,12 +815,12 @@ bool CMoviePlayerGui::luaGetUrl(const std::string &script, const std::string &fi return false; } + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(result_string, root, false); - if (!parsedSuccess) { + bool ok = parseJsonFromString(result_string, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); if (box != NULL) { box->hide(); delete box; diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index a0e33df98..4d2baf318 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -69,6 +69,7 @@ #include #include #include +#include #include #include @@ -738,16 +739,15 @@ bool CTimerList::RemoteBoxChanExists(t_channel_id channel_id) r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id); r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout); + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(r_url, root, false); - if (!parsedSuccess) { + bool ok = parseJsonFromString(r_url, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); } r_url = root.get("success","false").asString(); - if (r_url == "false") ShowMsg(LOCALE_REMOTEBOX_CHANNEL_NA, convertChannelId2String(channel_id), CMsgBox::mbrOk, CMsgBox::mbOk, NULL, 450, 30, false); @@ -796,13 +796,12 @@ void CTimerList::RemoteBoxTimerList(CTimerd::TimerList &rtimerlist) r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout); //printf("[remotetimer] timers:%s\n",r_url.c_str()); + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(r_url, root, false); - if (!parsedSuccess) - { + bool ok = parseJsonFromString(r_url, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); it->online = false; } else it->online = true; @@ -1286,13 +1285,12 @@ void CTimerList::paintItem(int pos) r_url += string_printf_helper(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, timer.channel_id); r_url = httpTool.downloadString(r_url, -1, httpConnectTimeout); + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(r_url, root, false); - if (!parsedSuccess) - { + bool ok = parseJsonFromString(r_url, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); } Json::Value remotechannel = root["data"]["channel"][0]; diff --git a/src/gui/tmdb.cpp b/src/gui/tmdb.cpp index 8ebe101c1..5a8208e27 100644 --- a/src/gui/tmdb.cpp +++ b/src/gui/tmdb.cpp @@ -35,6 +35,7 @@ #include "system/settings.h" #include "system/helpers.h" +#include #include "system/set_threadname.h" #include "gui/widget/hintbox.h" @@ -197,12 +198,12 @@ bool cTmdb::GetMovieDetails(std::string lang) if (!getUrl(url, answer)) return false; + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(answer, root, false); - if (!parsedSuccess) { + bool ok = parseJsonFromString(answer, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); return false; } @@ -219,10 +220,11 @@ bool cTmdb::GetMovieDetails(std::string lang) answer.clear(); if (!getUrl(url, answer)) return false; - parsedSuccess = reader.parse(answer, root, false); - if (!parsedSuccess) { + + ok = parseJsonFromString(answer, &root, &errMsg); + if (!ok) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); return false; } diff --git a/src/system/ytparser.cpp b/src/system/ytparser.cpp index 407d452a4..6bd43c576 100644 --- a/src/system/ytparser.cpp +++ b/src/system/ytparser.cpp @@ -38,6 +38,7 @@ #include #include "settings.h" #include "helpers.h" +#include "helpers-json.h" #include "set_threadname.h" #include #include @@ -288,25 +289,25 @@ std::string cYTFeedParser::getXmlData(xmlNodePtr node) bool cYTFeedParser::parseFeedJSON(std::string &answer) { + string errMsg = ""; Json::Value root; - Json::Reader reader; std::ostringstream ss; std::ifstream fh(curfeedfile.c_str(),std::ifstream::in); ss << fh.rdbuf(); std::string filedata = ss.str(); - bool parsedSuccess = reader.parse(filedata,root,false); + bool parsedSuccess = parseJsonFromString(filedata, &root, NULL); if(!parsedSuccess) { - parsedSuccess = reader.parse(answer,root,false); + parsedSuccess = parseJsonFromString(answer, &root, &errMsg); } if(!parsedSuccess) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); return false; } @@ -383,15 +384,16 @@ bool cYTFeedParser::parseFeedDetailsJSON(cYTVideoInfo* vinfo) if (!getUrl(url, answer)) return false; + string errMsg = ""; Json::Value root; - Json::Reader reader; - bool parsedSuccess = reader.parse(answer, root, false); + bool parsedSuccess = parseJsonFromString(answer, &root, &errMsg); if (!parsedSuccess) { printf("Failed to parse JSON\n"); - printf("%s\n", reader.getFormattedErrorMessages().c_str()); + printf("%s\n", errMsg.c_str()); return false; } + Json::Value elements = root["items"]; std::string duration = elements[0]["contentDetails"].get("duration", "").asString(); if (duration.find("PT") != std::string::npos) {