Had the same problem.
Looked in xmltv.c
'Episode' in the UI is taken from ee->ee_onscreen which is a 'Char*'
There are separate fields which carry the parse xmltv_ns vaules ee->ee_episode and ee->ee_season, both are defined as 'int', but aren't ever converted back to characters, to display in the UI 'Episode' tag.
Patch xmltv.c with the following and you'll get the Episode number as text if you use the xmltv_ns system.
/**
/
static void
get_episode_info(htsmsg_t
tags, epg_episode_t ee)
{
htsmsg_field_t
f;
htsmsg_t c,
a;
const char sys, *cdata;
// Patch: Added char array buffer 20, should be more then enough, maybe better way.
char buffer [20];
// End Patch
memset(ee, 0, sizeof(epg_episode_t));
HTSMSG_FOREACH(f, tags) {
if((c = htsmsg_get_map_by_field(f)) == NULL ||
strcmp(f->hmf_name, "episode-num") ||
(a = htsmsg_get_map(c, "attrib")) == NULL ||
(cdata = htsmsg_get_str(c, "cdata")) == NULL ||
(sys = htsmsg_get_str(a, "system")) == NULL)
continue;
if(!strcmp(sys, "onscreen"))
tvh_str_set(&ee->ee_onscreen, cdata);
else if(!strcmp(sys, "xmltv_ns"))
parse_xmltv_ns_episode(cdata, ee);
// Patch: Add episode from xmltv_ns back to onscreen variable
sprintf(buffer, "%i", ee->ee_episode);
tvh_str_set(&ee->ee_onscreen, buffer);
// End Patch
}
}
Sorry for the cut an paste but I haven't quite got round to creating a proper patch file !
Also I think it would be better to take the Season and Episode from xmltv_ns and form something like: 'sxxeyy' as the onscreen text.
Phill