fix xmltv time offsets

Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
TangoCash
2018-10-28 13:06:12 +01:00
committed by Thilo Graf
parent 42b294bb6b
commit aff3629fdb
2 changed files with 13 additions and 5 deletions

View File

@@ -477,10 +477,18 @@ bool readEventsFromXMLTV(std::string &epgname, int &ev_count)
struct tm starttime, stoptime;
strptime(start, "%Y%m%d%H%M%S %z", &starttime);
strptime(stop, "%Y%m%d%H%M%S %z", &stoptime);
time_t start_time = mktime(&starttime);
time_t duration = mktime(&stoptime)-start_time;
time_t start_time = mktime(&starttime) + starttime.tm_gmtoff;
time_t duration = mktime(&stoptime) + stoptime.tm_gmtoff - start_time;
t_channel_id epgid = 0;
time_t current_time;
time(&current_time);
double time_diff = difftime(current_time, start_time + duration);
// just loads events if they end is in the future
if (time_diff < 0)
epgid = getepgid(chan);
t_channel_id epgid = getepgid(chan);
if (epgid != 0)
{
//printf("\e[1;34m%s - %d - %s 0x%012" PRIx64 "(%ld) (%ld)\e[0m\n",__func__, __LINE__,chan, epgid, start_time, duration);

View File

@@ -3262,11 +3262,11 @@ void CControlAPI::xmltvepgCGI(CyhookHandler *hh)
programmeTag = "programme ";
programmeTag += "channel=\""+string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id)+"\" ";
char zbuffer[25] = { 0 };
struct tm *mtime = localtime(&eventIterator->startTime);
struct tm *mtime = gmtime(&eventIterator->startTime);
strftime(zbuffer, 21, "%Y%m%d%H%M%S %z", mtime);
programmeTag += "start=\""+std::string(zbuffer)+"\" ";
long _stoptime = eventIterator->startTime + eventIterator->duration;
mtime = localtime(&_stoptime);
mtime = gmtime(&_stoptime);
strftime(zbuffer, 21, "%Y%m%d%H%M%S %z", mtime);
programmeTag += "stop=\""+std::string(zbuffer)+"\" ";