yweb 2.8.0.3 new logo handling and some fixes to EPG Plus

git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@530 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
yjogol
2010-03-27 18:00:24 +00:00
parent cdab9d60bf
commit 9823c3a34a
11 changed files with 58 additions and 22 deletions

View File

@@ -190,7 +190,7 @@ const CControlAPI::TyCgiCall CControlAPI::yCgiCallList[]=
{"updatebouquet", &CControlAPI::updateBouquetCGI, "text/plain"},
// utils
{"build_live_url", &CControlAPI::build_live_url, ""},
{"get_logo", &CControlAPI::logoCGI, "text/plain"},
};
//-----------------------------------------------------------------------------
@@ -844,11 +844,13 @@ void CControlAPI::GetBouquetCGI(CyhookHandler *hh)
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
"</id>\n\t<short_id>"
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
"</short_id>\n\t<name><![CDATA[%s]]></name>\n</channel>\n",
"</short_id>\n\t<name><![CDATA[%s]]></name>\n<logo><![CDATA[%s]]></logo>\n</channel>\n",
num + j,
channel->channel_id,
channel->channel_id&0xFFFFFFFFFFFFULL,
channel->getName().c_str());
channel->getName().c_str(),
NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel->channel_id).c_str()
);
}
hh->WriteLn("</bouquetlist>");
}
@@ -1927,3 +1929,12 @@ void CControlAPI::build_live_url(CyhookHandler *hh)
hh->Write(url);
}
}
//-------------------------------------------------------------------------
void CControlAPI::logoCGI(CyhookHandler *hh)
{
t_channel_id channel_id;
sscanf(hh->ParamList["1"].c_str(),
SCANF_CHANNEL_ID_TYPE,
&channel_id);
hh->Write(NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel_id));
}

View File

@@ -94,6 +94,7 @@ private:
void changeBouquetCGI(CyhookHandler *hh);
void updateBouquetCGI(CyhookHandler *hh);
void build_live_url(CyhookHandler *hh);
void logoCGI(CyhookHandler *hh);
protected:
static const unsigned int PLUGIN_DIR_COUNT = 5;

View File

@@ -479,3 +479,21 @@ std::string CNeutrinoAPI::getCryptInfoAsString(void) {
return out.str();
}
//-------------------------------------------------------------------------
std::string CNeutrinoAPI::getLogoFile(std::string _logoURL, t_channel_id channelId) {
std::string channelIdAsString = string_printf( PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS , channelId & 0xFFFFFFFFFFFFULL);
std::string channelName = GetServiceName(channelId);
replace(channelName, " ", "_");
_logoURL+="/";
if(access((_logoURL + channelIdAsString + ".jpg").c_str(), 4) == 0)
return _logoURL + channelIdAsString + ".jpg";
else if (access((_logoURL + channelIdAsString + ".gif").c_str(), 4) == 0)
return _logoURL + channelIdAsString + ".gif";
else if (access((_logoURL + channelName + ".jpg").c_str(), 4) == 0)
return _logoURL + channelName + ".jpg";
else if (access((_logoURL + channelName + ".gif").c_str(), 4) == 0)
return _logoURL + channelName + ".gif";
else
return "";
}

View File

@@ -76,6 +76,7 @@ class CNeutrinoAPI
std::string getVideoFramerateAsString(void);
std::string getAudioInfoAsString(void);
std::string getCryptInfoAsString(void);
std::string getLogoFile(std::string _logoURL, t_channel_id channelId);
public:
CNeutrinoAPI();
~CNeutrinoAPI(void);

View File

@@ -95,7 +95,7 @@ THandleStatus CNeutrinoYParser::Hook_ReadConfig(CConfigFile *Config, CStringList
Config->setInt32("configfile.version", CONF_VERSION);
Config->saveConfig(HTTPD_CONFIGFILE);
}
std::string logo = ConfigList["TUXBOX_LOGOS_URL"];
return HANDLED_CONTINUE;
}
@@ -342,15 +342,12 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
std::string bouquetstr = (BouquetNr >= 0) ? ("&amp;bouquet=" + itoa(BouquetNr)) : "";
yresult += "<tr>";
//FIXME: Logo-Extensions
if(have_logos)
yresult += string_printf("<td class=\"%c\" width=\"44\" rowspan=\"2\"><a href=\"javascript:do_zap('"
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
"')\"><img class=\"channel_logo\" src=\"%s/"
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
".jpg\"/></a></td>", classname, channel->channel_id,
(hh->WebserverConfigList["Tuxbox.LogosURL"]).c_str(),
channel->channel_id & 0xFFFFFFFFFFFFULL);
"')\"><img class=\"channel_logo\" src=\"%s\"/></a></td>", classname, channel->channel_id,
(NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel->channel_id)).c_str());
/* timer slider */
if(event && event->duration > 0)

View File

@@ -61,9 +61,10 @@ function show_epg_item(_index){
$("d_start").update(epg_data[_index][3]);
$("d_stop").update(epg_data[_index][5]);
$("d_channel_id").update(epg_data[_index][6]);
$('d_logo').update( (g_logosURL!="")?"<img class=\"channel_logos\" src=\""+g_logosURL+"/"+epg_data[_index][6]+".gif\">":"" );
var logo =epg_data[_index][7];
$('d_logo').update( (logo!="")?"<img class=\"channel_logos\" src=\""+logo+"\">":"" );
var imdb_link = '<a target="_blank" class="exlink" href="http://german.imdb.com/find?s=all&q='+(epg_data[_index][0]).gsub(" ","+")+'">IMDb</a>';
var klack_link = '<a target="_blank" class="exlink" href="http://klack.de/ProgramFinder2.php3?ZWTITLE='+(epg_data[_index][0]).gsub(" ","+")+'">klack.de</a>';
var klack_link = '<a target="_blank" class="exlink" href="http://www.klack.de/index.php?page=Programfinder2.php&TITLE='+(epg_data[_index][0]).gsub(" ","+")+'">klack.de</a>';
var tvinfo_link = '<a target="_blank" class="exlink" href="http://www.tvinfo.de/exe.php3?quicksearch=1&volltext='+(epg_data[_index][0]).gsub(" ","+")+'&tpk=&showall=&genretipp=&target=list.inc">tvinfo.de</a>';
$('d_lookup').update(imdb_link+" "+klack_link+" "+tvinfo_link);
@@ -78,7 +79,7 @@ function show_epg_item(_index){
show_obj("epg_info",true);
}
/* build one channel row*/
function build_epg_bouquet(__bdiv, __channel_id, _starttime, _stoptime)
function build_epg_bouquet(__bdiv, __channel_id, _starttime, _stoptime, _logo)
{
var xml = loadSyncURLxml("/control/epg?xml=true&channelid="+__channel_id+"}&details=true&stoptime="+_stoptime);
if(xml){
@@ -98,7 +99,7 @@ function build_epg_bouquet(__bdiv, __channel_id, _starttime, _stoptime)
var _info2 = epg_de_qout(getXMLNodeItemValue(prog, "info2"));
var __item = obj_createAt(__bdiv, "div", "ep_bouquet_item");
var epg_obj= new Array(_desc, _info1, _info2, _start, _start_t, _stop.toString(), __channel_id);
var epg_obj= new Array(_desc, _info1, _info2, _start, _start_t, _stop.toString(), __channel_id, _logo);
epg_data.push(epg_obj);
__item.innerHTML = "<span onclick=\"show_epg_item('"+epg_data_index+"');\" title=\""+_start_t+" "+_desc+" (click for details)\">"+_desc+"</span>";
build_epg_setbox(__item, _starttime, _stoptime, _start, _stop);
@@ -191,12 +192,13 @@ function build_epg_plus_loop(_starttime, _stoptime)
var __channel_name = getXMLNodeItemValue(_bouquet, "name");
var __channel_id = getXMLNodeItemValue(_bouquet, "id");
var __short_channel_id = getXMLNodeItemValue(_bouquet, "short_id");
var __logo = getXMLNodeItemValue(_bouquet, "logo");
var ep = $("epg_plus");
var __bdiv = obj_createAt(ep, "div", "ep_bouquet");
var __bname_div = obj_createAt(__bdiv, "div", "ep_bouquet_name");
var ch_name_with_logo= (g_logosURL!="")?"<img class=\"channel_logos\" src=\""+g_logosURL+"/"+__short_channel_id+".jpg\" title=\""+__channel_name+"\" alt=\""+__channel_name+"\" >":__channel_name;
var ch_name_with_logo= (g_logosURL!="")?"<img class=\"channel_logos\" src=\""+__logo+"\" title=\""+__channel_name+"\" alt=\""+__channel_name+"\" >":__channel_name;
$(__bname_div).update("<a href=\"javascript:do_zap('"+__channel_id+"');\">"+ch_name_with_logo+"</a>");
build_epg_bouquet(__bdiv, __channel_id, _starttime, _stoptime);
build_epg_bouquet(__bdiv, __channel_id, _starttime, _stoptime, __logo);
window.setTimeout("build_epg_plus_loop("+_starttime+","+_stoptime+")",100);
g_i++;
}

View File

@@ -52,12 +52,17 @@ function epg_imdb(){
</tr>
<tr>
<td colspan="3">
<button ytype="record" title="{=L:epg.set_timer=}" onclick="epg_set_timer();show_obj('epg_info',false);">{=L:record=}</button>
<button ytype="zap" title="{=L:epg.zap_to=}" onclick="set_zapit();show_obj('epg_info',false);">{=L:zap=}</button>
{=L:lookup=}:
<span id="d_lookup"></span>
</td>
</tr>
<tr>
<td colspan="3">
<br/>
<button ytype="record" title="{=L:epg.set_timer=}" onclick="epg_set_timer();show_obj('epg_info',false);">{=L:record=}</button>
<button ytype="zap" title="{=L:epg.zap_to=}" onclick="set_zapit();show_obj('epg_info',false);">{=L:zap=}</button>
</td>
</tr>
</table>
</div>
<script type="text/javascript">

View File

@@ -601,6 +601,7 @@ tr {
background-color: white;
left: 50px;
top: 50px;
width: 600px;
}
#epg_time {
font-size: 8pt;

View File

@@ -51,7 +51,7 @@ function do_check(){
sLog_addRow(sLog_body, "ok", "yWeb Version is: {=ini-get:Y_Version.txt;version=} {=ini-get:Y_Version.txt;date=}", "ok");
/*webserver*/
var needed_nhttpd_version = "3.2.6";
var needed_nhttpd_version = "3.2.7";
var nhttpd_version = loadSyncURL("/control/info?nhttpd_version");
if(nhttpd_version.search(/error/)!=-1)
nhttpd_version = "0.0.0-unknown";

View File

@@ -1,5 +1,5 @@
version=2.8.0.2
date=18.03.2010
version=2.8.0.3
date=27.03.2010
type=Release
info=Port Coolstream

View File

@@ -25,7 +25,7 @@
//-----------------------------------------------------------------------------
// General central Definitions <configure!>
//-----------------------------------------------------------------------------
#define HTTPD_VERSION "3.2.6" // Webserver version (can be overloaded)
#define HTTPD_VERSION "3.2.7" // Webserver version (can be overloaded)
#define YHTTPD_VERSION "1.3.1" // Webserver version (Version of yhttpd-core!)
#define IADDR_LOCAL "127.0.0.1" // local IP
#define HTTPD_NAME "yhttpd" // Webserver name (can be overloaded)