diff --git a/data/y-web/Makefile.am b/data/y-web/Makefile.am index 08921be49..376530b1c 100644 --- a/data/y-web/Makefile.am +++ b/data/y-web/Makefile.am @@ -67,6 +67,7 @@ install_DATA = channels.js \ Y_Settings_video_audio.yhtm \ Y_Settings_VNC.yhtm \ Y_Settings_wol.yhtm \ + Y_Settings_xmltv.yhtm \ Y_Settings_yWeb.yhtm \ Y_Settings_zapit.yhtm \ Y_StreamInfo.yhtm \ diff --git a/data/y-web/Y_Settings_Menue.yhtm b/data/y-web/Y_Settings_Menue.yhtm index 6d4cceca7..a96cfe68d 100644 --- a/data/y-web/Y_Settings_Menue.yhtm +++ b/data/y-web/Y_Settings_Menue.yhtm @@ -107,6 +107,11 @@ function init(){ {=var-set:m_link_text={=L:set.menue.lcd_display=}=} {=include-block:Y_Blocks.txt;management_link=} +
  • + {=var-set:m_link_href=Y_Settings_xmltv.yhtm=} + {=var-set:m_link_text={=L:set.menue.xmltv=}=} + {=include-block:Y_Blocks.txt;management_link=} +
  • {=var-set:m_link_href=Y_Settings_buttons.yhtm=} {=var-set:m_link_text={=L:set.menue.key_settings=}=} diff --git a/data/y-web/Y_Settings_xmltv.yhtm b/data/y-web/Y_Settings_xmltv.yhtm new file mode 100644 index 000000000..9fdc5643d --- /dev/null +++ b/data/y-web/Y_Settings_xmltv.yhtm @@ -0,0 +1,52 @@ +{=include-block:Y_Blocks.txt;management_check_top=} +{=include-block:Y_Blocks.txt;head=} + + + + +{=var-set:wait_text={=L:save_values=}=}{=include-block:Y_Blocks.txt;snip_wait=} +
    +
    + {=var-set:help_url=Help-Settings-XMLTV_Settings=}{=var-set:menu={=L:set.xmltv.header=}=}{=include-block:Y_Blocks.txt;work_menu=}
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    WebTV
     
    WebRadio
     
    XMLTV
     
    +
    + + +
    +
    +
    + + +{=include-block:Y_Blocks.txt;management_check_bottom=} + diff --git a/data/y-web/languages/Deutsch b/data/y-web/languages/Deutsch index a3db65d82..06359e281 100644 --- a/data/y-web/languages/Deutsch +++ b/data/y-web/languages/Deutsch @@ -256,6 +256,8 @@ set.menue.boot_options=Bootoptionen set.menue.peronalization=Personalisierung set.menue.plugins=Plugins set.menue.others=Diverses +set.menue.xmltv=XMLTV + ========Neutrino Settings - Recording set.rec.rec_dest=Aufnahmeziel set.rec.device=Aufnahmegerät @@ -406,6 +408,9 @@ set.settings.restore=Wiederherstellen set.settings.restore_desc=Hochladen und wiederherstellen einer vorher erstellten Sicherung. Ihre Box startet danach neu. set.settings.warning=Sichern & Wiederherstellen ist nur bei einem gleichen Image mit gleichem Entwicklungsstand sinnvoll. +============Settings XMLTV +set.xmltv.header=XMLTV Einstellungen + ============ Tools Info tools.info.show_messages=Kernel Meldungen tools.info.processes=Prozesse diff --git a/data/y-web/languages/English b/data/y-web/languages/English index 0327458f5..6b0aefbab 100644 --- a/data/y-web/languages/English +++ b/data/y-web/languages/English @@ -259,6 +259,8 @@ set.menue.boot_options=Boot options set.menue.peronalization=Personalization set.menue.plugins=Plugins set.menue.others=Others +set.menue.xmltv=XMLTV + ========Neutrino Settings - Recording set.rec.rec_dest=Recoring destination set.rec.device=Recording device @@ -409,6 +411,9 @@ set.settings.restore=Restore set.settings.restore_desc=Upload and restore your settings. Your STB will reboot. set.settings.warning=Backup & Restore is only useful for the same image with the same level of development. +============Settings XMLTV +set.xmltv.header=XMLTV Settings + ============ Tools Info tools.info.show_messages=Kernel Messages tools.info.processes=Processes diff --git a/src/nhttpd/tuxboxapi/controlapi.cpp b/src/nhttpd/tuxboxapi/controlapi.cpp index 33abd5179..5f0ff717c 100644 --- a/src/nhttpd/tuxboxapi/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/controlapi.cpp @@ -236,6 +236,7 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]= {"xmltv.data", &CControlAPI::xmltvepgCGI, "+xml"}, {"xmltv.xml", &CControlAPI::xmltvepgCGI, "+xml"}, {"xmltv.m3u", &CControlAPI::xmltvm3uCGI, ""}, + {"xmltvlist", &CControlAPI::xmltvlistCGI, "text/plain"}, // utils {"build_live_url", &CControlAPI::build_live_url, ""}, {"get_logo", &CControlAPI::logoCGI, "text/plain"}, @@ -3400,6 +3401,70 @@ void CControlAPI::xmltvm3uCGI(CyhookHandler *hh) hh->SendResult(result); } + +void CControlAPI::xmltvlistCGI(CyhookHandler *hh) +{ + std::vector::iterator it; + std::vector url_list; + std::string tmp; + std::string::size_type i = 0; + + if (!hh->ParamList["webtv"].empty()) + { + std::string webtv_url = hh->ParamList["webtv"]; + g_settings.webtv_xml.clear(); + url_list = ::split(webtv_url, '\n'); + for (it = url_list.begin(); it != url_list.end(); it++) + { + tmp = (*it); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\n'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\r'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\t'), tmp.end()); + if (!tmp.empty()) + g_settings.webtv_xml.push_back(tmp); + } + } + else + g_settings.webtv_xml.clear(); + + if (!hh->ParamList["webradio"].empty()) + { + std::string webradio_url = hh->ParamList["webradio"]; + g_settings.webradio_xml.clear(); + url_list = ::split(webradio_url, '\n'); + for (it = url_list.begin(); it != url_list.end(); it++) + { + tmp = (*it); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\n'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\r'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\t'), tmp.end()); + if (!tmp.empty()) + g_settings.webradio_xml.push_back(tmp); + } + } + else + g_settings.webradio_xml.clear(); + + if (!hh->ParamList["xmltv"].empty()) + { + std::string xmltv_url = hh->ParamList["xmltv"]; + g_settings.xmltv_xml.clear(); + url_list = ::split(xmltv_url, '\n'); + for (it = url_list.begin(); it != url_list.end(); it++) + { + tmp = (*it); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\n'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\r'), tmp.end()); + tmp.erase(std::remove(tmp.begin(), tmp.end(), '\t'), tmp.end()); + if (!tmp.empty()) + g_settings.xmltv_xml.push_back(tmp); + } + } + else + g_settings.xmltv_xml.clear(); + + hh->SendOk(); +} //------------------------------------------------------------------------- // audio_no : (optional) audio channel // host : (optional) ip of dbox diff --git a/src/nhttpd/tuxboxapi/controlapi.h b/src/nhttpd/tuxboxapi/controlapi.h index 2f7cb86cd..3fdbb5d13 100644 --- a/src/nhttpd/tuxboxapi/controlapi.h +++ b/src/nhttpd/tuxboxapi/controlapi.h @@ -129,6 +129,7 @@ private: void updateBouquetCGI(CyhookHandler *hh); void xmltvepgCGI(CyhookHandler *hh); void xmltvm3uCGI(CyhookHandler *hh); + void xmltvlistCGI(CyhookHandler *hh); void build_live_url(CyhookHandler *hh); void logoCGI(CyhookHandler *hh); void ConfigCGI(CyhookHandler *hh); diff --git a/src/nhttpd/tuxboxapi/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/neutrinoyparser.cpp index e460e251e..a1642b8eb 100644 --- a/src/nhttpd/tuxboxapi/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/neutrinoyparser.cpp @@ -126,6 +126,9 @@ const CNeutrinoYParser::TyFuncCall CNeutrinoYParser::yFuncCallList[]= {"set_timer_form", &CNeutrinoYParser::func_set_timer_form}, {"bouquet_editor_main", &CNeutrinoYParser::func_bouquet_editor_main}, {"set_bouquet_edit_form", &CNeutrinoYParser::func_set_bouquet_edit_form}, + {"get_webtv_list", &CNeutrinoYParser::func_get_webtv_list}, + {"get_webradio_list", &CNeutrinoYParser::func_get_webradio_list}, + {"get_xmltv_list", &CNeutrinoYParser::func_get_xmltv_list}, }; //------------------------------------------------------------------------- // y-func : dispatching and executing @@ -1258,3 +1261,27 @@ std::string CNeutrinoYParser::func_set_bouquet_edit_form(CyhookHandler *hh, std else return "No Bouquet selected"; } + +std::string CNeutrinoYParser::func_get_webtv_list(CyhookHandler *hh, std::string para) +{ + std::string yresult; + for (std::list::iterator it = g_settings.webtv_xml.begin(); it != g_settings.webtv_xml.end(); it++) + yresult += string_printf((*it).c_str()) + "\n"; + return yresult; +} + +std::string CNeutrinoYParser::func_get_webradio_list(CyhookHandler *hh, std::string para) +{ + std::string yresult; + for (std::list::iterator it = g_settings.webradio_xml.begin(); it != g_settings.webradio_xml.end(); it++) + yresult += string_printf((*it).c_str()) + "\n"; + return yresult; +} + +std::string CNeutrinoYParser::func_get_xmltv_list(CyhookHandler *hh, std::string para) +{ + std::string yresult; + for (std::list::iterator it = g_settings.xmltv_xml.begin(); it != g_settings.xmltv_xml.end(); it++) + yresult += string_printf((*it).c_str()) + "\n"; + return yresult; +} \ No newline at end of file diff --git a/src/nhttpd/tuxboxapi/neutrinoyparser.h b/src/nhttpd/tuxboxapi/neutrinoyparser.h index 733c3feaa..aa4709c06 100644 --- a/src/nhttpd/tuxboxapi/neutrinoyparser.h +++ b/src/nhttpd/tuxboxapi/neutrinoyparser.h @@ -49,6 +49,9 @@ private: std::string func_set_timer_form(CyhookHandler *hh, std::string para); std::string func_bouquet_editor_main(CyhookHandler *hh, std::string para); std::string func_set_bouquet_edit_form(CyhookHandler *hh, std::string para); + std::string func_get_webtv_list(CyhookHandler *hh, std::string para); + std::string func_get_webradio_list(CyhookHandler *hh, std::string para); + std::string func_get_xmltv_list(CyhookHandler *hh, std::string para); protected: CNeutrinoAPI *NeutrinoAPI;