summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.cpp24
-rw-r--r--parse.h3
-rw-r--r--po/de_DE.po9
-rw-r--r--po/it_IT.po9
-rw-r--r--setup.cpp2
-rw-r--r--xmltv2vdr.cpp34
6 files changed, 50 insertions, 31 deletions
diff --git a/parse.cpp b/parse.cpp
index a0205ea..d6da1f8 100644
--- a/parse.cpp
+++ b/parse.cpp
@@ -908,22 +908,32 @@ bool cParse::Process(char *buffer, int bufsize)
cSchedule* schedule = (cSchedule *) schedules->GetSchedule(channel,addevents);
if (schedule)
{
- cEvent *event=NULL;
- if ((event=SearchEvent(schedule,&xevent)))
+ if ((!schedule->Index()) && (!addevents))
{
- PutEvent(schedule,event,&xevent,map);
+ if (lerr!=PARSE_EMPTYSCHEDULE)
+ esyslog("xmltv2vdr: '%s' cannot merge into empty epg (%s)",
+ name,channel->Name());
+ lerr=PARSE_EMPTYSCHEDULE;
}
else
{
- if (addevents)
+ cEvent *event=NULL;
+ if ((event=SearchEvent(schedule,&xevent)))
{
PutEvent(schedule,event,&xevent,map);
}
else
{
- time_t start=xevent.StartTime();
- esyslog("xmltv2vdr: '%s' cannot find existing event in epg.data for xmltv-event %s@%s",
- name,xevent.Title(),ctime(&start));
+ if (addevents)
+ {
+ PutEvent(schedule,event,&xevent,map);
+ }
+ else
+ {
+ time_t start=xevent.StartTime();
+ esyslog("xmltv2vdr: '%s' cannot find existing event in epg.data for xmltv-event %s@%s",
+ name,xevent.Title(),ctime(&start));
+ }
}
}
}
diff --git a/parse.h b/parse.h
index 4eaecf0..82db285 100644
--- a/parse.h
+++ b/parse.h
@@ -157,7 +157,8 @@ class cParse
PARSE_NOSCHEDULES=3,
PARSE_XMLTVERR=4,
PARSE_NOMAPPING=5,
- PARSE_NOCHANNELID=6
+ PARSE_NOCHANNELID=6,
+ PARSE_EMPTYSCHEDULE=7
};
private:
diff --git a/po/de_DE.po b/po/de_DE.po
index 3f82a91..d09b8d4 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2011-02-27 17:16+0100\n"
+"POT-Creation-Date: 2011-05-14 18:48+0200\n"
"PO-Revision-Date: 2010-12-23 23:59+0100\n"
"Last-Translator: Jochen Dolze <vdr@dolze.de>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -123,8 +123,8 @@ msgstr "Art der Bearbeitung"
msgid "merge"
msgstr "mischen"
-msgid "append"
-msgstr "hinzufügen"
+msgid "create"
+msgstr "erstellen"
msgid "short text"
msgstr "Kurztext"
@@ -182,3 +182,6 @@ msgstr "xmltv2vdr plugin ist noch aktiv"
msgid "Imports xmltv epg into vdr"
msgstr "Importiert xmltv epg in den VDR"
+
+#~ msgid "append"
+#~ msgstr "hinzufügen"
diff --git a/po/it_IT.po b/po/it_IT.po
index d877226..42793c2 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2011-02-27 17:20+0100\n"
+"POT-Creation-Date: 2011-05-14 18:48+0200\n"
"PO-Revision-Date: 2010-12-30 20:01+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -126,8 +126,8 @@ msgstr "Tipo elaborazione"
msgid "merge"
msgstr "Unisci"
-msgid "append"
-msgstr "Aggiungi"
+msgid "create"
+msgstr "Creare"
msgid "short text"
msgstr "Testo breve"
@@ -185,3 +185,6 @@ msgstr "Plugin XMLTV2VDR ancora in esecuzione"
msgid "Imports xmltv epg into vdr"
msgstr ""
+
+#~ msgid "append"
+#~ msgstr "Aggiungi"
diff --git a/setup.cpp b/setup.cpp
index ac49d8a..d447c18 100644
--- a/setup.cpp
+++ b/setup.cpp
@@ -786,7 +786,7 @@ void cMenuSetupXmltv2vdrChannelMap::output(void)
Add(first,true);
Add(new cMenuEditIntItem(tr("days in advance"),&days,1,daysmax),true);
- Add(new cMyMenuEditBitItem(tr("type of processing"),&flags,OPT_APPEND,tr("merge"),tr("append")),true);
+ Add(new cMyMenuEditBitItem(tr("type of processing"),&flags,OPT_APPEND,tr("merge"),tr("create")),true);
c1=Current();
if ((flags & OPT_APPEND)!=OPT_APPEND)
{
diff --git a/xmltv2vdr.cpp b/xmltv2vdr.cpp
index 553e9fe..ad4e575 100644
--- a/xmltv2vdr.cpp
+++ b/xmltv2vdr.cpp
@@ -74,7 +74,7 @@ void cEPGExecutor::Action()
cEPGSource::cEPGSource(const char *Name, cEPGMappings *Maps, cTEXTMappings *Texts)
{
- dsyslog("xmltv2vdr: added epgsource '%s'",Name);
+ dsyslog("xmltv2vdr: '%s' added epgsource",Name);
name=strdup(Name);
pipe=false;
daysinadvance=0;
@@ -85,14 +85,14 @@ cEPGSource::cEPGSource(const char *Name, cEPGMappings *Maps, cTEXTMappings *Text
cEPGSource::~cEPGSource()
{
- dsyslog("xmltv2vdr: removed epgsource '%s'",name);
+ dsyslog("xmltv2vdr: '%s' epgsource removed",name);
free((void *) name);
if (parse) delete parse;
}
bool cEPGSource::ReadConfig()
{
- dsyslog("xmltv2vdr: reading config of epgsource '%s'",name);
+ dsyslog("xmltv2vdr: '%s' reading config",name);
char *fname=NULL;
if (asprintf(&fname,"%s/%s",EPGSOURCES,name)!=-1)
{
@@ -176,7 +176,7 @@ bool cEPGSource::Execute()
cExtPipe p;
if (p.Open(name,"r"))
{
- dsyslog("xmltv2vdr: executing epgsource '%s'",name);
+ dsyslog("xmltv2vdr: '%s' executing epgsource",name);
int c;
while ((c=fgetc(p))!=EOF)
{
@@ -189,30 +189,30 @@ bool cEPGSource::Execute()
int returncode=WEXITSTATUS(status);
if ((!returncode) && (result))
{
- dsyslog("xmltv2vdr: parsing output of '%s'",name);
+ dsyslog("xmltv2vdr: '%s' parsing output",name);
result[l]=0;
if (!parse->Process(result,l))
{
- esyslog("xmltv2vdr: failed to parse output of '%s'",name);
+ esyslog("xmltv2vdr: '%s' failed to parse output",name);
ret=false;
}
}
else
{
- esyslog("xmltv2vdr: epgsource '%s' returned with %i",name,returncode);
+ esyslog("xmltv2vdr: '%s' epgsource returned with %i",name,returncode);
ret=false;
}
}
else
{
- esyslog("xmltv2vdr: failed to execute '%s'",name);
+ esyslog("xmltv2vdr: '%s' failed to execute",name);
ret=false;
}
if (result) free(result);
}
else
{
- esyslog("xmltv2vdr: failed to open pipe for '%s'",name);
+ esyslog("xmltv2vdr: '%s' failed to open pipe",name);
ret=false;
}
}
@@ -221,7 +221,7 @@ bool cEPGSource::Execute()
char *fname=NULL;
if (asprintf(&fname,"%s/%s.xmltv",EPGSOURCES,name)!=-1)
{
- dsyslog("xmltv2vdr: reading '%s' from epgsource '%s'",fname,name);
+ dsyslog("xmltv2vdr: '%s' reading from '%s'",name,fname);
int fd=open(fname,O_RDONLY);
if (fd!=-1)
@@ -237,33 +237,33 @@ bool cEPGSource::Execute()
{
if (!parse->Process(result,l))
{
- esyslog("xmltv2vdr: failed to parse output of '%s'",name);
+ esyslog("xmltv2vdr: '%s' failed to parse output",name);
ret=false;
}
}
else
{
- esyslog("xmltv2vdr: failed to read '%s' for '%s'",fname,name);
+ esyslog("xmltv2vdr: '%s' failed to read '%s'",name,fname);
ret=false;
}
free(result);
}
else
{
- esyslog("xmltv2vdr: out of memory @'%s'",name);
+ esyslog("xmltv2vdr: '%s' out of memory",name);
ret=false;
}
}
else
{
- esyslog("xmltv2vdr: failed to stat '%s' for '%s'",fname,name);
+ esyslog("xmltv2vdr: '%s' failed to stat '%s'",name,fname);
ret=false;
}
close(fd);
}
else
{
- esyslog("xmltv2vdr: failed to open '%s' for '%s'",fname,name);
+ esyslog("xmltv2vdr: '%s' failed to open '%s'",name,fname);
ret=false;
}
free(fname);
@@ -287,6 +287,7 @@ void cEPGSource::Store(void)
if (asprintf(&fname1,"%s/%s",EPGSOURCES,name)==-1) return;
if (asprintf(&fname2,"%s/%s.new",EPGSOURCES,name)==-1)
{
+ esyslog("xmltv2vdr: '%s' out of memory",name);
free(fname1);
return;
}
@@ -294,6 +295,7 @@ void cEPGSource::Store(void)
FILE *r=fopen(fname1,"r+");
if (!r)
{
+ esyslog("xmltv2vdr: '%s' cannot read %s",name,fname1);
free(fname1);
free(fname2);
return;
@@ -303,8 +305,8 @@ void cEPGSource::Store(void)
umask(oldmask);
if (!w)
{
+ esyslog("xmltv2vdr: '%s' cannot create %s",name,fname2);
fclose(r);
- fclose(w);
unlink(fname2);
free(fname1);
free(fname2);