summaryrefslogtreecommitdiff
path: root/parse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parse.cpp')
-rw-r--r--parse.cpp38
1 files changed, 30 insertions, 8 deletions
diff --git a/parse.cpp b/parse.cpp
index afeb08a..15d6228 100644
--- a/parse.cpp
+++ b/parse.cpp
@@ -169,10 +169,12 @@ void cXMLTVEvent::Clear()
director=NULL;
}
year=0;
- vps= (time_t) 0;
starttime = 0;
duration = 0;
+ vps= (time_t) 0;
eventid=0;
+ actors.Clear();
+ others.Clear();
}
cXMLTVEvent::cXMLTVEvent()
@@ -182,8 +184,8 @@ cXMLTVEvent::cXMLTVEvent()
description=NULL;
country=NULL;
system=NULL;
- rating=NULL;
review=NULL;
+ rating=NULL;
origtitle=NULL;
director=NULL;
Clear();
@@ -765,19 +767,39 @@ bool cParse::Process(char *buffer, int bufsize)
if ((map->Flags() & OPT_APPEND)==OPT_APPEND) addevents=true;
cChannel *channel=Channels.GetByChannelID(map->ChannelIDs()[i]);
- cSchedule* schedule = (cSchedule *) schedules->GetSchedule(channel,addevents);
- if (schedule)
+ if (channel)
{
- cEvent *event=NULL;
- if ((event=SearchEvent(schedule,&xevent)))
+ cSchedule* schedule = (cSchedule *) schedules->GetSchedule(channel,addevents);
+ if (schedule)
{
- PutEvent(schedule,event,&xevent,map);
+ cEvent *event=NULL;
+ if ((event=SearchEvent(schedule,&xevent)))
+ {
+ PutEvent(schedule,event,&xevent,map);
+ }
+ else
+ {
+ if (addevents)
+ {
+ PutEvent(schedule,event,&xevent,map);
+ }
+ else
+ {
+ time_t start=xevent.StartTime();
+ esyslog("xmltv2vdr: cannot find existing event in epg.data for xmltv-event %s@%s",
+ xevent.Title(),ctime(&start));
+ }
+ }
}
else
{
- if (addevents) PutEvent(schedule,event,&xevent,map);
+ esyslog("xmltv2vdr: cannot get schedule for channel %s (no import)",channel->Name());
}
}
+ else
+ {
+ esyslog("xmltv2vdr: channel %s not found in channels.conf",*map->ChannelIDs()[i].ToString());
+ }
}
}
delete schedulesLock;