diff options
-rw-r--r-- | dist/epgdata2xmltv/epgdata2xmltv.dist | 71 | ||||
-rw-r--r-- | dist/tvm2xmltv/tvm2xmltv.dist | 292 | ||||
-rw-r--r-- | import.cpp | 102 | ||||
-rw-r--r-- | import.h | 3 | ||||
-rw-r--r-- | parse.cpp | 79 | ||||
-rw-r--r-- | parse.h | 2 | ||||
-rw-r--r-- | xmltv2vdr.cpp | 13 |
7 files changed, 359 insertions, 203 deletions
diff --git a/dist/epgdata2xmltv/epgdata2xmltv.dist b/dist/epgdata2xmltv/epgdata2xmltv.dist index b6c3e6a..c4180dc 100644 --- a/dist/epgdata2xmltv/epgdata2xmltv.dist +++ b/dist/epgdata2xmltv/epgdata2xmltv.dist @@ -8,45 +8,47 @@ animax.de;539 anixe.de;537 ard.de;71 arte.de;58 -atv2.de;761 -atvplus.at;115 +atv2.at;761 +atv.at;115 axntv.de;468 bayern3.de;51 +bbc-entertainment.tv;662 bbc-world-news.uk;67 beate-uhse-tv.de;123 bibeltv.de;280 bloombergtv.de;127 +bongusto.tv;457 boomerang-tv.de;493 br-alpha.de;104 +canal+.fr;573 canale-5.it;297 cartoon-network.de;531 classica.de;133 cnbc-paneurope.eu;538 cnn.de;69 -das-vierte.de;486 discovery-channel.de;138 discovery-hd.de;490 disney-channel.de;139 disney-cinemagic.de;630 disney-cinemagic-hd.de;631 +disney-junior.de;460 disney-xd.de;657 dmax.de;507 -dsf.de;64 +dw-europe.eu;300 e-entertainment.de;758 -einsextra.de;100 einsfestival.de;146 -einsmuxx.de;475 -espn-america.eu;591 -espn-classic-sport.com;473 +einsplus.de;475 euronews.de;68 eurosport.de;65 -eurosport-2.de;504 +eurosport2.de;504 extreme-sports-channel.de;469 fashiontv.fr;455 -fox-channel.de;565 +fox.de;565 france-2.fr;149 france-24.fr;542 france-3.fr;150 +france-4.fr;574 +france-5.fr;547 franken-fernsehen.de;151 goldstar-tv.de;152 gotv.at;391 @@ -64,9 +66,12 @@ kabel1.de;44 kabel-eins-classics.de;492 kika.de;57 kinowelt-tv.de;450 +ktv.de;481 lust-pur.de;634 mdr.de;48 +mezzo.fr;396 mgm.de;1196 +motors.tv;461 motorvision-tv.de;627 mtv.de;70 mtv-brand-new.de;738 @@ -74,21 +79,27 @@ mtv-dance.uk;465 mtv-hits.uk;466 mtv-live-hd.pl;601 n24.de;175 -national-geographic.de;453 -national-geographic-hd.de;624 -national-geographic-wild.de;626 +nautical-channel.com;463 +natgeo.de;453 +natgeo-hd.de;624 +natgeo-wild.de;626 ndr.de;47 +nickcomedy.ch;608 nickcomedy.de;589 ntv.de;66 oberpfalz-tv.de;185 orf1.at;54 orf2.at;55 orf3.at;757 -orf-sport-plus.de;759 +orf-sport-plus.at;759 phoenix.de;194 planet.de;195 -playhouse-disney.de;460 +playboy.tv;467 +pro7-fun.de;765 +pro7-fun-hd.de;10099 +pro7-maxx.de;783 prosieben.de;40 +puls4tv.at;402 qvc.de;208 rai-1.it;209 rai-2.it;210 @@ -99,35 +110,39 @@ rhein-neckar-fernsehen.de;211 romance-tv.de;552 rsi-la1.it;255 rsi-la2.it;256 -rtl.de;38 rtl2.de;41 rtl-crime.de;527 +rtl.de;38 rtl-living.de;528 rtl-nitro.de;763 rtl-passion.de;529 rts-deux.fr;258 rts-un.fr;257 -sat.1-emotions.de;766 sat1.de;39 -sat1-comedy.de;491 +sat1-emotions.de;766 +sat1-emotions-hd.de;10100 +sat1-gold.de;774 schweiz-5.de;299 -sci-fi.de;472 -servus-tv.de;660 +servus-tv.at;660 sf1.ch;59 sf2.ch;60 sf-info.de;231 silverline-tv.de;451 sixx.de;694 +sixx.at;769 sky-3d.de;701 sky-action.de;613 +sky-action-hd.de;10058 sky-atlantic-hd.de;767 -sky-cinema.de;610 +sky-bundesliga.de;623 sky-cinema-1.de;611 sky-cinema-24.de;612 +sky-cinema.de;610 +sky-cinema-hd.de;629 sky-cinema-hits.de;618 +sky-cinema-hits-hd.de;10059 sky-comedy.de;617 sky-emotion.de;616 -sky-fussball-bundesliga.de;623 sky-krimi.de;615 sky-nostalgie.de;614 sky-select.de;628 @@ -140,24 +155,31 @@ sky-sport-hd-extra.de;743 sky-sport-news-hd.de;762 spiegel-geschichte.de;625 spiegel-tv-wissen.de;756 -sport1plus.de;698 +sport1.de;64 +sport1+.de;698 +sport1-us-hd.de;784 sportdigitaltv.de;564 spreekanal.de;236 star-tv.de;232 superrtl.de;43 swr.de;50 +syfy.de;472 +tagesschau24.de;100 tele5.de;277 +telebärn.ch;247 telebielingue.ch;248 +telezüri.ch;250 tf1.fr;252 the-biography-channel.de;536 timm.de;588 tnt-film.de;633 tnt-serie.de;590 trt-turk.tr;254 +trace.tv;464 tv-5.fr;260 tv-berlin.de;1192 tv-muenchen.de;262 -tw-1.de;265 +universal-channel-hd.de;10139 vh1-classic.eu;296 viva.de;266 vox.de;42 @@ -166,4 +188,3 @@ zdf.de;37 zdfinfo.de;276 zdfkultur.de;275 zdfneo.de;659 -zdf-theaterkanal.de;275 diff --git a/dist/tvm2xmltv/tvm2xmltv.dist b/dist/tvm2xmltv/tvm2xmltv.dist index 2cfa8bd..af4a866 100644 --- a/dist/tvm2xmltv/tvm2xmltv.dist +++ b/dist/tvm2xmltv/tvm2xmltv.dist @@ -1,151 +1,143 @@ -pipe;00:00;0;1 +pipe;06:00;0;1 1;15 -13th-street.de;501 -3sat.de;118 -animal-planet.de;568 -animax.de;629 -anixe.de;666 -ard.de;001 -arte.de;010 -atvplus.at;031 -automotorsportchannel.de;704 -axntv.de;576 -bayern3.de;018 -bbcworld.uk;581 -beate-uhse-tv.de;544 -bibeltv.de;579 -bloombergtv.de;687 -bongusto.de;597 -boomerang-tv.de;612 -br-alpha.de;057 -cartoon-network.de;627 -classica.de;508 -cnn.de;126 -das-vierte.de;067 -deluxe-music.de;660 -discovery-channel.de;510 -discovery-hd.de;614 -disney-channel.de;511 -disney-cinemagic.de;683 -disney-junior.de;583 -disney-xd.de;689 -dk1.dk;091 -dk2.dk;092 -dmax.de;554 -e-entertainment-television.de;606 -einsfestival.de;512 -einsplus.de;513 -espn-america.com;585 -espn-classic-sport.com;584 -euronews.de;013 -eurosport-2.de;630 -eurosport.de;107 -extreme-sports-channel.de;594 -fox-channel.de;663 -goldstar-tv.de;516 -gotv.at;703 -gute-laune-tv.de;601 -heimatkanal.de;517 -hessen3.de;026 -hh1.de;054 -history-channel.de;589 -hse24.de;189 -imusic1.de;716 -junior.de;518 -kabel1.de;008 -kabel-eins-classics.de;610 -kanal-7-int.tr;634 -kika.de;063 -kinowelt-tv.de;577 -k-tv.at;590 -mdr.de;032 -mezzotv.fr;633 -mgm.de;565 -motors-tv.fr;598 -motorvision-tv.de;699 -mtv-base.de;632 -mtv-dance.uk;592 -mtv.de;109 -mtv-hits.uk;588 -mtv-music.de;637 -muenchen-2.de;620 -n24.de;065 -national-geographic.de;593 -national-geographic-wild.de;682 -ndr.de;019 -nickcomedy.de;190:625 -nick-jr.de;715 -nicktoons.de;662 -nl1.nl;088 -nl2.nl;089 -nl3.nl;090 -ntv.de;007 -orf1.at;014 -orf2.at;015 -phoenix.de;206 -pipe;00:00;0;1 -planet.de;521 -prosieben.de;006 -prosieben-maxx.de;735 -puls4.at;708 -qvc.de;136 -rbb.de;027 -romance-tv.de;664 -rtl2.de;009 -rtl-crime.de;621 -rtl.de;004 -rtl-living.de;622 -rtl-nitro.de;727 -rtl-passion.de;623 -rtlshop.de;574 -sailing-channel.it;600 -sat1.de;005 -sat1-emotions.de;726 -sat1-gold.de;729 -sci-fi.de;541 -servustv.at;719 -sf1.ch;024 -sf2.ch;039 -silverline-tv.de;578 -sixx.de;696 -sky-action.de;670 -sky-atlantic-hd.de;728 -sky-cinema-1.de;674 -sky-cinema-24.de;668 -sky-cinema.de;667 -sky-cinema-hits.de;669 -sky-comedy.de;672 -sky-emotion.de;671 -sky-fussball-bundesliga.de;677 -sky-krimi.de;673 -sky-nostalgie.de;675 -sky-sport-1.de;678 -sky-sport-2.de;679 -sky-sport-austria.at;676 -sky-sport-news-hd.de;733 -sonnenklartv.de;697 -spiegel-geschichte.de;684 -sport1.de;012 -sport1plus.de;734 -sportdigitaltv.de;692 -superrtl.de;179 -swr.de;029 -tagesschau24.de;551 -tele5.de;105 -the-biography-channel.de;626 -tnt-film.de;628 -tnt-serie.de;685 -tracetv.fr;602 -tv5.de;133 -tv-berlin.de;038 -tv-muenchen.de;044 -universal-channel.de;736 -vh1-classic.uk;591 -viva.de;121 -vox.de;011 -wdr.de;028 -wetter-fernsehen.de;595 -zdf.de;002 -zdfinfo.de;570 -zdfkultur.de;725 -zdfneo.de;553 +13th-street.de;88 +3sat.de;12 +animal-planet.de;158 +animax.de;222 +anixe.de;269 +ard.de;1 +arte.de;38 +atvplus.at;129 +automotorsportchannel.de;305 +axntv.de;177 +bayern3.de;5 +bbcworld.uk;61 +beate-uhse-tv.de;127 +bibeltv.de;156 +bloombergtv.de;125 +blue-movie-1.de; +blue-movie-2.de; +blue-movie-3.de; +bongusto.de; +boomerang-tv.de;211 +br-alpha.de;56 +cartoon-network.de;219 +classica.de;95 +cnn.de;42 +das-vierte.de; +deluxe-music.de;238 +discovery-channel.de;199 +discovery-hd.de;199 +disney-channel.de;111 +disney-cinemagic.de;279 +disney-junior.de;171 +dk1.dk;18 +dk2.dk;19 +dmax.de;52 +e-entertainment-television.de;201 +einsextra.de;128 +einsfestival.de;122 +einsplus.de;123 +espn-america.com; +espn-classic-sport.com; +euronews.de;48 +eurosport-2.de;239 +eurosport.de;30 +extreme-sports-channel.de;153 +fox-channel.de;264 +goldstar-tv.de;113 +gotv.at;301 +gute-laune-tv.de;205 +heimatkanal.de;89 +hessen3.de;7 +hh1.de; +history-channel.de;181 +hse24.de;53 +imusic1.de;257 +junior.de;96 +k-tv.at;183 +kabel-eins-classics.de;209 +kabel1.de;39 +kanal-7-int.tr;247 +kika.de;76 +kinowelt-tv.de;182 +mdr.de;41 +mezzotv.fr;221 +mgm.de;151 +motors-tv.fr;184 +mtv-base.de;240 +mtv-dance.uk;189 +mtv-hits.uk;174 +mtv.de;32 +muenchen-2.de; +n24.de;31 +national-geographic.de;190 +national-geographic-wild.de;284 +ndr.de;6 +nickcomedy.de;14 +nicktoons.de;227 +nl1.nl;21 +nl2.nl;22 +nl3.nl;23 +ntv.de;47 +orf1.at;16 +orf2.at;17 +phoenix.de;60 +planet.de;98 +pulse4.at;314 +prosieben.de;11 +qvc.de;54 +rbb.de;57 +rtl.de;3 +rtl2.de;43 +rtl-crime.de;214 +rtl-living.de;215 +rtl-nitro.de;427 +rtl-passion.de;216 +rtlshop.de; +sailing-channel.it; +sat1-emotions.de;428 +sat1-gold.de;430 +sat1.de;4 +sci-fi.de;154 +servustv.at;316 +sf1.ch;24 +sf2.ch;35 +silverline-tv.de;185 +sixx.de;318 +sky-action.de;274 +sky-atlantic-hd.de;429 +sky-cinema-1.de;271 +sky-cinema-24.de;272 +sky-cinema-hits.de;273 +sky-cinema.de;270 +sky-comedy.de;276 +sky-emotion.de;275 +sky-fussball-bundesliga.de;288 +sky-krimi.de;278 +sky-nostalgie.de;277 +sky-sport-1.de;289 +sky-sport-2.de;290 +sky-sport-austria.at;286 +sonnenklartv.de;259 +spiegel-geschichte.de;285 +sport1.de;45 +sportdigitaltv.de;263 +superrtl.de;13 +swr.de;8 +tele5.de;55 +tnt-serie.de;267 +tracetv.fr;206 +turner-classic-movies.de;220 +tv5.de;33 +tv-berlin.de; +tv-muenchen.de; +vh1-classic.uk;187 +viva.de;73 +vox.de;46 +wdr.de;9 +wetter-fernsehen.de;188 +zdf.de;2 +zdfinfo.de;137 +zdfkultur.de;378 +zdfneo.de;294 @@ -1246,15 +1246,15 @@ cXMLTVEvent *cImport::PrepareAndReturn(sqlite3 **db, char *sql) return xevent; } -void cImport::AddShortTextFromEITDescription(cXMLTVEvent *xEvent, const char *EITDescription) +bool cImport::AddShortTextFromEITDescription(cXMLTVEvent *xEvent, const char *EITDescription) { - if (!g->EPDir()) return; + if (!g->EPDir()) return false; int season,episode,episodeoverall; char *epshorttext=NULL; if (!cParse::FetchSeasonEpisode(cep2ascii,cutf2ascii,g->EPDir(),xEvent->Title(), NULL,EITDescription, season,episode,episodeoverall,&epshorttext, - NULL)) return; + NULL)) return false; if (epshorttext) { @@ -1264,6 +1264,7 @@ void cImport::AddShortTextFromEITDescription(cXMLTVEvent *xEvent, const char *EI xEvent->SetSeason(season); xEvent->SetEpisode(episode); xEvent->SetEpisodeOverall(episodeoverall); + return true; } cXMLTVEvent *cImport::AddXMLTVEvent(cEPGSource *Source,sqlite3 *Db, const char *ChannelID, const cEvent *Event, @@ -1370,6 +1371,101 @@ cXMLTVEvent *cImport::AddXMLTVEvent(cEPGSource *Source,sqlite3 *Db, const char * return xevent; } +bool cImport::UpdateXMLTVEvent(cEPGSource *Source, sqlite3 *Db, cXMLTVEvent *xEvent) +{ + if (!Source) return false; + if (!Db) return false; + if (!xEvent) return false; + + if (!Begin(Source,Db)) return false; + + char *sql=NULL; + + if (xEvent->ShortText()) + { + char *shortdesc=strdup(xEvent->ShortText()); + if (!shortdesc) + { + esyslogs(Source,"out of memory"); + return false; + } + + string ed=shortdesc; + + int reps; + reps=pcrecpp::RE("'").GlobalReplace("''",&ed); + if (reps) + { + shortdesc=(char *) realloc(shortdesc,ed.size()+1); + strcpy(shortdesc,ed.c_str()); + } + + if (asprintf(&sql,"update epg set season=%li, episode=%li, episodeoverall=%li, shorttext='%s' " + " where eventid=%li and src='%s' and channelid='%s'", (long int) xEvent->Season(), + (long int) xEvent->Episode(), (long int) xEvent->EpisodeOverall() ,shortdesc, + (long int) xEvent->EventID(),Source->Name(),xEvent->ChannelID())==-1) + { + free(shortdesc); + esyslogs(Source,"out of memory"); + return false; + } + free(shortdesc); + } + else + { + if (asprintf(&sql,"update epg set season=%li, episode=%li, episodeoverall=%li " + " where eventid=%li and src='%s' and channelid='%s'", (long int) xEvent->Season(), + (long int) xEvent->Episode(), (long int) xEvent->EpisodeOverall(), + (long int) xEvent->EventID(),Source->Name(),xEvent->ChannelID())==-1) + { + esyslogs(Source,"out of memory"); + return false; + } + } + + if (Source->Trace()) + { + char buf[80]=""; + if (xEvent->ShortText()) + { + strcat(buf,"shorttext"); + if (xEvent->Season() || xEvent->Episode() || xEvent->EpisodeOverall()) strcat(buf,"/"); + } + if (xEvent->Season()) + { + strcat(buf,"season"); + if (xEvent->Episode() || xEvent->EpisodeOverall()) strcat(buf,"/"); + } + if (xEvent->Episode()) + { + strcat(buf,"episode"); + if (xEvent->EpisodeOverall()) strcat(buf,"/"); + } + if (xEvent->EpisodeOverall()) + { + strcat(buf,"episodeoverall"); + } + + if (xEvent->EITEventID()) + { + tsyslogs(Source,"{%5i} updating %s of '%s' in db",xEvent->EITEventID(),buf, + xEvent->Title()); + } + } + + char *errmsg; + if (sqlite3_exec(Db,sql,NULL,NULL,&errmsg)!=SQLITE_OK) + { + esyslogs(Source,"%s -> %s",sql,errmsg); + free(sql); + sqlite3_free(errmsg); + return false; + } + + free(sql); + return true; +} + bool cImport::UpdateXMLTVEvent(cEPGSource *Source, sqlite3 *Db, const cEvent *Event, cXMLTVEvent *xEvent, const char *Description) { @@ -69,12 +69,13 @@ public: bool DBExists(); bool PutEvent(cEPGSource *Source, sqlite3 *Db, cSchedule* Schedule, cEvent *Event, cXMLTVEvent *xEvent, int Flags); + bool UpdateXMLTVEvent(cEPGSource *Source, sqlite3 *Db, cXMLTVEvent *xEvent); bool UpdateXMLTVEvent(cEPGSource *Source, sqlite3 *Db, const cEvent *Event, cXMLTVEvent *xEvent, const char *Description); cXMLTVEvent *SearchXMLTVEvent(sqlite3 **Db, const char *ChannelID, const cEvent *Event); cXMLTVEvent *AddXMLTVEvent(cEPGSource *Source, sqlite3 *Db, const char *ChannelID, const cEvent *Event, const char *EITDescription, bool UseEPText); - void AddShortTextFromEITDescription(cXMLTVEvent *xEvent, const char *EITDescription); + bool AddShortTextFromEITDescription(cXMLTVEvent *xEvent, const char *EITDescription); bool WasChanged(cEvent *Event); }; @@ -97,7 +97,7 @@ time_t cParse::ConvertXMLTVTime2UnixTime(char *xmltvtime) return ret; } -void cParse::RemoveNonAlphaNumeric(char *String) +void cParse::RemoveNonAlphaNumeric(char *String, bool InDescription) { if (!String) return; @@ -115,6 +115,27 @@ void cParse::RemoveNonAlphaNumeric(char *String) p=strstr(String," Folge "); if (p) *p=0; + if (InDescription) + { + // remove leading numbers (inkl. roman numerals) + len=strlen(String); + p=String; + while (*p) + { + // 0x30 - 0x39 + if (((*p>=0x30) && (*p<=0x39)) || (*p=='I') || (*p=='V') || (*p=='X') || (*p=='/')) + { + memmove(p,p+1,len); + len--; + continue; + } + else + { + break; + } + } + } + // remove non alphanumeric characters len=strlen(String); p=String; @@ -141,24 +162,6 @@ void cParse::RemoveNonAlphaNumeric(char *String) pos++; } - // remove leading numbers (inkl. roman numerals) - len=strlen(String); - p=String; - while (*p) - { - // 0x30 - 0x39 - if (((*p>=0x30) && (*p<=0x39)) || *p=='I' || *p=='V') - { - memmove(p,p+1,len); - len--; - continue; - } - else - { - break; - } - } - return; } @@ -254,10 +257,26 @@ bool cParse::FetchSeasonEpisode(iconv_t cEP2ASCII, iconv_t cUTF2ASCII, const cha free(epfile); return false; } + int f_season=0,f_episode=0; size_t slen; if (ShortText) { slen=strlen(ShortText); + if ((slen==6) && (ShortText[0]=='S') && (isdigit(ShortText[1])!=0) && + (isdigit(ShortText[2])!=0) && (ShortText[3]=='E') && (isdigit(ShortText[4])!=0) && + (isdigit(ShortText[5])!=0)) + { + // special SxxExx-Format + char buf[5]; + buf[0]=ShortText[1]; + buf[1]=ShortText[2]; + buf[2]=0; + f_season=atoi(buf); + buf[0]=ShortText[4]; + buf[1]=ShortText[5]; + buf[2]=0; + f_episode=atoi(buf); + } } else { @@ -291,11 +310,15 @@ bool cParse::FetchSeasonEpisode(iconv_t cEP2ASCII, iconv_t cUTF2ASCII, const cha return false; } - RemoveNonAlphaNumeric(dshorttext); + RemoveNonAlphaNumeric(dshorttext,!ShortText); if (!strlen(dshorttext)) { strn0cpy(dshorttext,ShortText ? ShortText : Description,slen); // ok lets try with the original text } + if (!ShortText) + { + tsyslog("trying to find shorttext for '%s', with '%s'",Title,dshorttext); + } char *line=NULL; size_t length; @@ -351,6 +374,18 @@ bool cParse::FetchSeasonEpisode(iconv_t cEP2ASCII, iconv_t cUTF2ASCII, const cha found=true; } } + + if ((f_season==Season) && (f_episode==Episode)) + { + if (EPShortText) + { + if (*EPShortText) free(*EPShortText); + *EPShortText=strdup(epshorttext); + } + found=true; + break; + } + } else { @@ -367,6 +402,10 @@ bool cParse::FetchSeasonEpisode(iconv_t cEP2ASCII, iconv_t cUTF2ASCII, const cha { isyslog("failed to find '%s' for '%s' in eplists",ShortText,Title); } + if ((found) && (!ShortText)) + { + tsyslog("found shorttext '%s' from description of '%s'",*EPShortText,Title); + } if (line) free(line); fclose(f); @@ -45,7 +45,7 @@ public: cParse(cEPGSource *Source, cGlobals *Global); ~cParse(); int Process(cEPGExecutor &myExecutor, char *buffer, int bufsize); - static void RemoveNonAlphaNumeric(char *String); + static void RemoveNonAlphaNumeric(char *String, bool InDescription=false); static bool FetchSeasonEpisode(iconv_t cEP2ASCII, iconv_t cUTF2ASCII, const char *EPDir, const char *Title, const char *ShortText, const char *Description, int &Season, int &Episode, int &EpisodeOverall, char **EPShortText, diff --git a/xmltv2vdr.cpp b/xmltv2vdr.cpp index b9eb456..1a7c2c6 100644 --- a/xmltv2vdr.cpp +++ b/xmltv2vdr.cpp @@ -834,7 +834,10 @@ void cEPGTimer::Action() if ((strlen(event->ShortText())+strlen(event->Description()))==0) continue; // no text -> no episode } } - if (maps->ProcessChannel(event->ChannelID())) continue; // already processed by xmltv2vdr + if (maps->ProcessChannel(event->ChannelID())) + { + if (event->ShortText()) continue; // already processed by xmltv2vdr + } const char *ChannelID=strdup(*event->ChannelID().ToString()); cXMLTVEvent *xevent=import.SearchXMLTVEvent(&db,ChannelID,event); @@ -855,7 +858,10 @@ void cEPGTimer::Action() { if (!event->ShortText() && event->Description()) { - import.AddShortTextFromEITDescription(xevent,event->Description()); + if (import.AddShortTextFromEITDescription(xevent,event->Description())) + { + import.UpdateXMLTVEvent(source,db,xevent); + } } } free((void*)ChannelID); @@ -1011,7 +1017,8 @@ cPluginXmltv2vdr::cPluginXmltv2vdr(void) : housekeeping(&g),epgexecutor(g.EPGSou // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT! logfile=NULL; last_maintime_t=0; - last_timer_t=last_epcheck_t=last_housetime_t=time(NULL); // start this threads later! + last_epcheck_t=last_housetime_t=time(NULL); // start this threads later! + last_timer_t=last_epcheck_t-(time_t) 540; // check timers in 60 seconds g.SetEPAll(0); g.TEXTMappings()->Add(new cTEXTMapping("country",tr("country"))); g.TEXTMappings()->Add(new cTEXTMapping("year",tr("year"))); |