diff options
-rw-r--r-- | HISTORY | 3 | ||||
-rw-r--r-- | HISTORY.DE | 3 | ||||
-rw-r--r-- | doc-src/de/epgsearch.1.txt | 9 | ||||
-rw-r--r-- | doc-src/en/epgsearch.1.txt | 9 | ||||
-rw-r--r-- | doc-src/en/epgsearch.4.txt | 1 | ||||
-rw-r--r-- | epgsearchext.c | 46 | ||||
-rw-r--r-- | epgsearchext.h | 1 | ||||
-rw-r--r-- | epgsearchtools.c | 27 | ||||
-rw-r--r-- | epgsearchtools.h | 3 | ||||
-rw-r--r-- | menu_searchedit.c | 35 | ||||
-rw-r--r-- | po/ca_ES.po | 7 | ||||
-rw-r--r-- | po/cs_CZ.po | 7 | ||||
-rw-r--r-- | po/da_DK.po | 7 | ||||
-rw-r--r-- | po/de_DE.po | 8 | ||||
-rw-r--r-- | po/el_GR.po | 7 | ||||
-rw-r--r-- | po/es_ES.po | 9 | ||||
-rw-r--r-- | po/et_EE.po | 7 | ||||
-rw-r--r-- | po/fi_FI.po | 9 | ||||
-rw-r--r-- | po/fr_FR.po | 9 | ||||
-rw-r--r-- | po/hr_HR.po | 7 | ||||
-rw-r--r-- | po/hu_HU.po | 8 | ||||
-rw-r--r-- | po/it_IT.po | 9 | ||||
-rw-r--r-- | po/lt_LT.po | 9 | ||||
-rw-r--r-- | po/nl_NL.po | 9 | ||||
-rw-r--r-- | po/nn_NO.po | 7 | ||||
-rw-r--r-- | po/pl_PL.po | 7 | ||||
-rw-r--r-- | po/pt_PT.po | 7 | ||||
-rw-r--r-- | po/ro_RO.po | 7 | ||||
-rw-r--r-- | po/ru_RU.po | 7 | ||||
-rw-r--r-- | po/sk_SK.po | 9 | ||||
-rw-r--r-- | po/sl_SI.po | 8 | ||||
-rw-r--r-- | po/sv_SE.po | 7 | ||||
-rw-r--r-- | po/tr_TR.po | 7 | ||||
-rw-r--r-- | recdone.c | 94 | ||||
-rw-r--r-- | recdone.h | 2 | ||||
-rw-r--r-- | uservars.h | 19 |
36 files changed, 304 insertions, 126 deletions
@@ -3,6 +3,9 @@ VDR Plugin 'epgsearch' Revision History 2010-xx-xx; Version 0.9.25 new: +- avoid repeats with new 'compare expression' entry: compare two events by an arbitrary + expression. E.g: the epxression '%year%-%month%' will avoid all repeats within one month, + '%week%' will avoid the repeats within the week,... - global blacklists: blacklists for search timers can now be global to exclude generally unwanted events (like on my double SD/HD channels). Default mode for search timers is now 'only global', but can be set to 'none' to ignore also global blacklists. @@ -3,6 +3,9 @@ VDR Plugin 'epgsearch' Revision History 2010-xx-xx; Version 0.9.25 neu: +- Vermeide Wiederholungen mit dem neuen 'Vergleiche Ausdruck'-Eintrag: dabei werden + 2 Sendungen anhand eines beliebigen Ausdruck verglichen. Z.B. '%year%-%month%' vermeidet + Wiederholungen innerhalb eines Monats, '%week%' innerhalb einer Wochen,... - Globale Ausschlusslisten: Ausschlusslisten für Suchtimer können nun als global markiert werden, um unerwünschte Sendungen generell auszuschliessen (wie z.B auf doppelten SD/HD- Kanälen). Vorbelegung für Suchtimer ist nun "nur globale", kann aber auch auf "keine" diff --git a/doc-src/de/epgsearch.1.txt b/doc-src/de/epgsearch.1.txt index ca5bebb..8d35196 100644 --- a/doc-src/de/epgsearch.1.txt +++ b/doc-src/de/epgsearch.1.txt @@ -362,6 +362,15 @@ wird er als gleich behandelt. Die notwendige bereinstimmung zweier Beschreibung in %. +=item - B<Vergl. Ausdruck> + +Manchmal wird eine Sendung hufig innerhalb einer gewissen Zeitspanne (Woche, Monat,...) +wiederholt, die einzelnen Sendungen lassen sich aber anhand des EPG Inhalts nicht unterscheiden. +Somit ist der Zeitpunkt also die einzige Information. Um damit zu vergelichen, kann man diesen +Eintrag mit den entsprechenden Variablen fllen. Z.B. Mit dem Ausdruck +'%year%-%month%' werden die Wiederholungen innerhalb eines Monats dieses Jahres vermieden, +'%year%-%week%' vermeidet die Wiederholungen innerhalb einer Woche des Jahres,... + =item - B<Vergl. Kategorien> ber die Schaltflche 'Einstellungen' kann angegeben werden welche diff --git a/doc-src/en/epgsearch.1.txt b/doc-src/en/epgsearch.1.txt index 04e6c2b..b6f5d38 100644 --- a/doc-src/en/epgsearch.1.txt +++ b/doc-src/en/epgsearch.1.txt @@ -358,6 +358,15 @@ compared. If this is similar at the value of the next option The needed minimum match of descriptions in percent. +=item - B<Compare expression:> + +Sometimes an event is repeated many times within some period (week, month,...), but one +cannot distinguish the repeats based on the EPG contents. So the only information is its time. +To use this for comparison you can fill this entry with the corresponding variables. +E.g: the epxression +'%year%-%month%' will avoid all repeats within one month of the year, +'%year%-%week%' will avoid the repeats within the week of the year,... + =item - B<Compare categories:> With the button 'setup' you can also specify which categories should diff --git a/doc-src/en/epgsearch.4.txt b/doc-src/en/epgsearch.4.txt index 6257499..c19eaec 100644 --- a/doc-src/en/epgsearch.4.txt +++ b/doc-src/en/epgsearch.4.txt @@ -533,6 +533,7 @@ The following variables exist: %year% - year with century %month% - month (1-12) %day% - day (1-31) + %week% - week number of the year (Monday as the first day of the week) as a decimal number [01,53] %time_w% - weekday name %time_d% - start day in format TT %time_lng% - start time in seconds since 1970-01-01 00:00 diff --git a/epgsearchext.c b/epgsearchext.c index d1422b8..a73a31b 100644 --- a/epgsearchext.c +++ b/epgsearchext.c @@ -116,6 +116,7 @@ cSearchExt::cSearchExt(void) ignoreMissingEPGCats = 0; unmuteSoundOnSwitch = 0; skipRunningEvents = false; + *compareExpression = 0; } cSearchExt::~cSearchExt(void) @@ -218,6 +219,7 @@ cSearchExt& cSearchExt::operator= (const cSearchExt &SearchExt) compareSubtitle = templ->compareSubtitle; compareSummary = templ->compareSummary; compareSummaryMatchInPercent = templ->compareSummaryMatchInPercent; + strcpy(compareExpression, templ->compareExpression); allowedRepeats = templ->allowedRepeats; catvaluesAvoidRepeat = templ->catvaluesAvoidRepeat; repeatsWithinDays = templ->repeatsWithinDays; @@ -249,6 +251,15 @@ bool cSearchExt::operator< (const cListObject &ListObject) return strcasecmp(search, SE->search) < 0; } +char* replaceSpecialChars(const char* in) +{ + char* tmp_in = strdup(in); + while(strstr(tmp_in, "|")) + tmp_in = strreplace(tmp_in, "|", "!^pipe^!"); // ugly: replace a pipe with something, + strreplace(tmp_in, ':', '|'); + return tmp_in; +} + const char *cSearchExt::ToText() { char tmp_Start[5] = ""; @@ -256,23 +267,14 @@ const char *cSearchExt::ToText() char tmp_minDuration[5] = ""; char tmp_maxDuration[5] = ""; cString tmp_chanSel; - char* tmp_search = NULL; - char* tmp_directory = NULL; char* tmp_catvalues = NULL; char* tmp_blacklists = NULL; free(buffer); - tmp_search = strdup(search); - while(strstr(tmp_search, "|")) - tmp_search = strreplace(tmp_search, "|", "!^pipe^!"); // ugly: replace a pipe with something, - // that should not happen to be part of a search string - tmp_directory = strdup(directory); - while(strstr(tmp_directory, "|")) - tmp_directory = strreplace(tmp_directory, "|", "!^pipe^!"); // ugly: replace a pipe with something, - // that should not happen to be part of a search string - - strreplace(tmp_search, ':', '|'); - strreplace(tmp_directory, ':', '|'); + char* tmp_search = replaceSpecialChars(search); + char* tmp_directory = replaceSpecialChars(directory); + char* tmp_contentsFilter = replaceSpecialChars(contentsFilter.c_str()); + char* tmp_compareExpression = replaceSpecialChars(compareExpression); if (useTime) { @@ -350,7 +352,7 @@ const char *cSearchExt::ToText() } } - msprintf(&buffer, "%d:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%ld:%d:%d:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%d:%ld:%ld:%d:%d:%d:%s", + msprintf(&buffer, "%d:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d:%d:%d:%s:%s:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%ld:%d:%d:%d:%d:%d:%d:%s:%d:%d:%d:%d:%d:%d:%ld:%ld:%d:%d:%d:%s:%s", ID, tmp_search, useTime, @@ -403,12 +405,15 @@ const char *cSearchExt::ToText() ignoreMissingEPGCats, unmuteSoundOnSwitch, compareSummaryMatchInPercent, - contentsFilter.c_str()); + contentsFilter.c_str(), + compareExpression); if (tmp_search) free(tmp_search); if (tmp_directory) free(tmp_directory); if (tmp_catvalues) free(tmp_catvalues); if (tmp_blacklists) free(tmp_blacklists); + if (tmp_contentsFilter) free(tmp_contentsFilter); + if (tmp_compareExpression) free(tmp_compareExpression); return buffer; } @@ -614,6 +619,9 @@ bool cSearchExt::Parse(const char *s) case 53: contentsFilter = value; break; + case 54: + strcpy(compareExpression, value); + break; default: break; } //switch @@ -625,10 +633,16 @@ bool cSearchExt::Parse(const char *s) strreplace(directory, '|', ':'); strreplace(search, '|', ':'); + strreplace(contentsFilter, "|", ":"); + strreplace(compareExpression, '|', ':'); + while(strstr(search, "!^pipe^!")) strreplace(search, "!^pipe^!", "|"); while(strstr(directory, "!^pipe^!")) strreplace(directory, "!^pipe^!", "|"); + strreplace(contentsFilter, "!^pipe^!", "|"); + while(strstr(compareExpression, "!^pipe^!")) + strreplace(compareExpression, "!^pipe^!", "|"); if (disableSearchtimer && useAsSearchTimer) { @@ -1191,7 +1205,7 @@ void cSearchExt::CheckRepeatTimers(cSearchResults* pResults) if (!pResultObjP->needsTimer) continue; - if (EventsMatch(pEvent, pEventP, compareTitle, compareSubtitle, compareSummary, catvaluesAvoidRepeat)) + if (EventsMatch(pEvent, pEventP, compareTitle, compareSubtitle, compareSummary, compareExpression, catvaluesAvoidRepeat)) { if (!pFirstResultMatching) pFirstResultMatching = pResultObjP; plannedTimers++; diff --git a/epgsearchext.h b/epgsearchext.h index 4677b07..9a61f5b 100644 --- a/epgsearchext.h +++ b/epgsearchext.h @@ -150,6 +150,7 @@ public: int compareSubtitle; int compareSummary; int compareSummaryMatchInPercent; + char compareExpression[MaxFileName]; int allowedRepeats; unsigned long catvaluesAvoidRepeat; int repeatsWithinDays; diff --git a/epgsearchtools.c b/epgsearchtools.c index d36cd15..7beaed6 100644 --- a/epgsearchtools.c +++ b/epgsearchtools.c @@ -54,7 +54,7 @@ The project's page is at http://winni.vdr-developer.org/epgsearch #include <regex.h> #endif -const char AllowedChars[] = trNOOP("$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"); +const char AllowedChars[] = trNOOP("$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_"); extern bool isUTF8; int CompareEventTime(const void *p1, const void *p2) @@ -564,6 +564,21 @@ char *strreplacei(char *s, const char *s1, const char *s2) return s; } +std::string strreplace( + std::string& result, + const std::string& replaceWhat, + const std::string& replaceWithWhat) +{ + while(1) + { + const int pos = result.find(replaceWhat); + if (pos==-1) break; + result.replace(pos,replaceWhat.size(),replaceWithWhat); + } + return result; +} + + void sleepMSec(long ms) { cCondWait::SleepMs(ms); @@ -791,7 +806,7 @@ void PrepareTimerFile(const cEvent* event, cTimer* timer) } } -bool EventsMatch(const cEvent* event1, const cEvent* event2, bool compareTitle, int compareSubtitle, bool compareSummary, unsigned long catvaluesAvoidRepeat, int matchLimit) +bool EventsMatch(const cEvent* event1, const cEvent* event2, bool compareTitle, int compareSubtitle, bool compareSummary, const char* compareExpression, unsigned long catvaluesAvoidRepeat, int matchLimit) { if (!event1 || !event2) return false; if (event1 == event2) return true; @@ -835,6 +850,14 @@ bool EventsMatch(const cEvent* event1, const cEvent* event2, bool compareTitle, free(rawDescr2); if (!match) return false; } + if (compareExpression != NULL && strlen(compareExpression) > 0) + { + cVarExpr varExpr(compareExpression); + string resEvent1 = varExpr.Evaluate(event1); + string resEvent2 = varExpr.Evaluate(event2); + if (resEvent1 != resEvent2) + return false; + } if (catvaluesAvoidRepeat != 0) // check categories { bool bCatMatch = ((Descr1 && Descr2) || (!Descr1 && !Descr2)); diff --git a/epgsearchtools.h b/epgsearchtools.h index 0f44ad8..6973995 100644 --- a/epgsearchtools.h +++ b/epgsearchtools.h @@ -141,6 +141,7 @@ string UpdateAuxValue(string aux, string section, string value); string UpdateAuxValue(string aux, string section, long num); void ToLower(char* szText); char *strreplacei(char *s, const char *s1, const char *s2); +std::string strreplace(std::string& result, const std::string& replaceWhat, const std::string& replaceWithWhat); // replace s1 with s2 in s ignoring the case of s1 inline char *strreplacei(char *s, const char *s1, const char s2) @@ -170,7 +171,7 @@ char* GetRawDescription(const char* descr); void PrepareTimerFile(const cEvent* event, cTimer* timer); int CompareEventTime(const void *p1, const void *p2); int CompareEventChannel(const void *p1, const void *p2); -bool EventsMatch(const cEvent* event1, const cEvent* event2, bool compareTitle, int compareSubtitle, bool compareSummary, unsigned long catvaluesAvoidRepeat, int matchLimit=90); +bool EventsMatch(const cEvent* event1, const cEvent* event2, bool compareTitle, int compareSubtitle, bool compareSummary, const char* compareExpression, unsigned long catvaluesAvoidRepeat, int matchLimit=90); int ChannelNrFromEvent(const cEvent* pEvent); void DelTimer(int index); char* FixSeparators(char* buffer, char sep); diff --git a/menu_searchedit.c b/menu_searchedit.c index f415e51..ebf4da9 100644 --- a/menu_searchedit.c +++ b/menu_searchedit.c @@ -367,30 +367,31 @@ void cMenuEditSearchExt::Set() if (data.avoidRepeats) { Add(new cMenuEditIntItem(IndentMenuItem(tr("Allowed repeats"),2), &data.allowedRepeats, 0, 99)); - if (data.allowedRepeats > 0) - Add(new cMenuEditIntItem(IndentMenuItem(tr("Only repeats within ... days"),2), &data.repeatsWithinDays, 0, 999)); - Add(new cMenuEditBoolItem(IndentMenuItem(tr("Compare title"),2), &data.compareTitle, trVDR("no"), trVDR("yes"))); - Add(new cMenuEditStraItem(IndentMenuItem(tr("Compare subtitle"),2), &data.compareSubtitle, 2, CompareSubtitleModes)); - Add(new cMenuEditBoolItem(IndentMenuItem(tr("Compare summary"),2), &data.compareSummary, trVDR("no"), trVDR("yes"))); - if (data.compareSummary) - Add(new cMenuEditIntItem(IndentMenuItem(tr("Min. match in %"),3), &data.compareSummaryMatchInPercent, 1, 100)); - // show 'Compare categories' only if we have them - if (SearchExtCats.Count() > 0) - { + if (data.allowedRepeats > 0) + Add(new cMenuEditIntItem(IndentMenuItem(tr("Only repeats within ... days"),2), &data.repeatsWithinDays, 0, 999)); + Add(new cMenuEditBoolItem(IndentMenuItem(tr("Compare title"),2), &data.compareTitle, trVDR("no"), trVDR("yes"))); + Add(new cMenuEditStraItem(IndentMenuItem(tr("Compare subtitle"),2), &data.compareSubtitle, 2, CompareSubtitleModes)); + Add(new cMenuEditBoolItem(IndentMenuItem(tr("Compare summary"),2), &data.compareSummary, trVDR("no"), trVDR("yes"))); + if (data.compareSummary) + Add(new cMenuEditIntItem(IndentMenuItem(tr("Min. match in %"),3), &data.compareSummaryMatchInPercent, 1, 100)); + Add(new cMenuEditStrItem(IndentMenuItem(tr("Compare expression")), data.compareExpression, sizeof(data.compareExpression), tr(AllowedChars))); + // show 'Compare categories' only if we have them + if (SearchExtCats.Count() > 0) + { cSearchExtCat *SearchExtCat = SearchExtCats.First(); int iUsed = 0; int index = 0; while (SearchExtCat) - { - if (catarrayAvoidRepeats[index]) + { + if (catarrayAvoidRepeats[index]) iUsed++; - SearchExtCat = SearchExtCats.Next(SearchExtCat); - index++; - } - + SearchExtCat = SearchExtCats.Next(SearchExtCat); + index++; + } + cString itemtext = cString::sprintf("%s (%d/%d)", tr("Compare categories"), iUsed, SearchExtCats.Count()); Add(new cOsdItem(IndentMenuItem(IndentMenuItem(itemtext)))); - } + } } Add(new cMenuEditIntItem(IndentMenuItem(trVDR("Priority")), &data.Priority, 0, MAXPRIORITY)); diff --git a/po/ca_ES.po b/po/ca_ES.po index 6363ef3..fc221ce 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Jordi Vil <jvila@tinet.org>\n" "Language-Team: Catalan <vdr@linuxtv.org>\n" @@ -556,7 +556,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1078,6 +1078,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index cb1bf47..60017a0 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Vladimr Brta <vladimir.barta@k2atmitec.cz>\n" "Language-Team: Czech <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/da_DK.po b/po/da_DK.po index ad49b34..1c2fe60 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Mogens Elneff <mogens@elneff.dk>\n" "Language-Team: Danish <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index 902d437..8fc692c 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n" "Language-Team: German <vdr@linuxtv.org>\n" @@ -594,7 +594,8 @@ msgstr "Mailkonto-Prfung fehlgeschlagen!" msgid "Button$Test" msgstr "Test" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1124,6 +1125,9 @@ msgstr "Vergleiche Beschreibung" msgid "Min. match in %" msgstr "Min. bereinstimmung in %" +msgid "Compare expression" +msgstr "Vergleiche Ausdruck" + msgid "Compare categories" msgstr "Vergl. Kategorien" diff --git a/po/el_GR.po b/po/el_GR.po index 2c391c5..d53f2fd 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n" "Language-Team: Greek <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/es_ES.po b/po/es_ES.po index fe13ef2..ffbf13e 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-11-18 20:09+0200\n" "Last-Translator: bittor from open7x0.org <bittor7x0 _at_ gmail.com>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n" @@ -597,7 +597,8 @@ msgstr "Fall la prueba de cuenta de correo!" msgid "Button$Test" msgstr "Probar" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-_.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1132,6 +1133,10 @@ msgstr "Comparar resumen" msgid "Min. match in %" msgstr " Duracin mn." +#, fuzzy +msgid "Compare expression" +msgstr "expresin regular" + msgid "Compare categories" msgstr "Comparar categoras" diff --git a/po/et_EE.po b/po/et_EE.po index 5259744..0cbdf0f 100644 --- a/po/et_EE.po +++ b/po/et_EE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n" "Language-Team: Estonian <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/fi_FI.po b/po/fi_FI.po index 3097725..bb484fe 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: EPGSearch 0.9.25\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2011-01-04 21:07+0200\n" "Last-Translator: Ville Skyttä <ville.skytta@iki.fi>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n" @@ -598,7 +598,8 @@ msgstr "Sähköpostilaatikon tarkistus epäonnistui!" msgid "Button$Test" msgstr "Testaa" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyzåäö0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1128,6 +1129,10 @@ msgstr "Vertaa kuvausta" msgid "Min. match in %" msgstr "Vaadittava yhdenmukaisuus [%]" +#, fuzzy +msgid "Compare expression" +msgstr "säännöllinen lauseke" + msgid "Compare categories" msgstr "Vertaa kategorioita" diff --git a/po/fr_FR.po b/po/fr_FR.po index 6cfcff3..0a00948 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2008-04-30 08:36+0200\n" "Last-Translator: Patrice Staudt <patrice.staudt@laposte.net>\n" "Language-Team: French <vdr@linuxtv.org>\n" @@ -597,7 +597,8 @@ msgstr "La vrification du compte mail a chou" msgid "Button$Test" msgstr "Test" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1126,6 +1127,10 @@ msgstr "Comparer les descriptions" msgid "Min. match in %" msgstr " Dure min." +#, fuzzy +msgid "Compare expression" +msgstr "expression rguliere" + msgid "Compare categories" msgstr "Comparer categories" diff --git a/po/hr_HR.po b/po/hr_HR.po index 3922824..d74f696 100644 --- a/po/hr_HR.po +++ b/po/hr_HR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Drazen Dupor <drazen.dupor@dupor.com>\n" "Language-Team: Croatian <vdr@linuxtv.org>\n" @@ -555,7 +555,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1077,6 +1077,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/hu_HU.po b/po/hu_HU.po index 7ce420a..7936ff9 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Istvan Koenigsberger <istvnko@hotmail.com>, Guido Josten <guido.josten@t-online.de>\n" "Language-Team: Hungarian <vdr@linuxtv.org>\n" @@ -554,7 +554,8 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1076,6 +1077,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/it_IT.po b/po/it_IT.po index 6079bd3..e39808b 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2010-03-29 01:42+0100\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Language-Team: Italian <vdr@linuxtv.org>\n" @@ -607,7 +607,8 @@ msgstr "Verifica account email fallita!" msgid "Button$Test" msgstr "Prova" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " aàbcdeéèfghiîìjklmnoòpqrstuùvwxyz0123456789-.#~\\^$[]|()*+?{}/:%" msgid "Start/Stop time has changed" @@ -1140,6 +1141,10 @@ msgstr "Confronta sommario" msgid "Min. match in %" msgstr " Durata Minima" +#, fuzzy +msgid "Compare expression" +msgstr "espressione regolare" + msgid "Compare categories" msgstr "Confronta categorie" diff --git a/po/lt_LT.po b/po/lt_LT.po index d1b4d0c..e2861e1 100644 --- a/po/lt_LT.po +++ b/po/lt_LT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.10\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n" @@ -602,7 +602,8 @@ msgstr "Pašto prisijungimo patikra!" msgid "Button$Test" msgstr "Testas" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " aąbcčdeęėfghiįjklmnopqrsštuųūvzž0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1135,6 +1136,10 @@ msgstr "Palyginti santrauką" msgid "Min. match in %" msgstr " Min. trukmė" +#, fuzzy +msgid "Compare expression" +msgstr "reguliari išraiška" + msgid "Compare categories" msgstr "Palyginti kategorijas" diff --git a/po/nl_NL.po b/po/nl_NL.po index 7d8c0ba..57c99c6 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>\n" "Language-Team: Dutch <vdr@linuxtv.org>\n" @@ -595,7 +595,8 @@ msgstr "Mail abonnement verificatie mislukt!" msgid "Button$Test" msgstr "Test" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1130,6 +1131,10 @@ msgstr "Vergelijk samenvatting" msgid "Min. match in %" msgstr " Min. duur" +#, fuzzy +msgid "Compare expression" +msgstr "reguliere uitdrukking" + msgid "Compare categories" msgstr "vergelijk categorien" diff --git a/po/nn_NO.po b/po/nn_NO.po index 23b51c1..8e74467 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Truls Slevigen <truls@slevigen.no>\n" "Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index 7c19bb3..315d33e 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Michael Rakowski <mrak@gmx.de>\n" "Language-Team: Polish <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/pt_PT.po b/po/pt_PT.po index bdf8a4e..1e4a447 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Paulo Lopes <pmml@netvita.pt>\n" "Language-Team: Portuguese <vdr@linuxtv.org>\n" @@ -553,7 +553,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1075,6 +1075,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/ro_RO.po b/po/ro_RO.po index 3cc11ec..ecfbf4c 100644 --- a/po/ro_RO.po +++ b/po/ro_RO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n" "Language-Team: Romanian <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/ru_RU.po b/po/ru_RU.po index 2f501d7..fa7bd36 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Vyacheslav Dikonov <sdiconov@mail.ru>\n" "Language-Team: Russian <vdr@linuxtv.org>\n" @@ -553,7 +553,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1075,6 +1075,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/sk_SK.po b/po/sk_SK.po index 4fcf93e..5c8e6f3 100644 --- a/po/sk_SK.po +++ b/po/sk_SK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: epgsearch\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2009-11-02 09:40+0100\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Language-Team: Slovak <hrala.milan@gmail.com>\n" @@ -597,7 +597,8 @@ msgstr "Chyba kontroly mailovho tu!" msgid "Button$Test" msgstr "Testova" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " $ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1134,6 +1135,10 @@ msgstr "porovna celkovo" msgid "Min. match in %" msgstr " Min. doba" +#, fuzzy +msgid "Compare expression" +msgstr "ben vraz" + msgid "Compare categories" msgstr "porovna kategrie" diff --git a/po/sl_SI.po b/po/sl_SI.po index 25f0dbd..cf84b9a 100644 --- a/po/sl_SI.po +++ b/po/sl_SI.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n" "Language-Team: Slovenian <vdr@linuxtv.org>\n" @@ -554,7 +554,8 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +#, fuzzy +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr " abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "Start/Stop time has changed" @@ -1076,6 +1077,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/sv_SE.po b/po/sv_SE.po index 5b763b7..4ae11c3 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Tomas Prybil <tomas@prybil.se>\n" "Language-Team: Swedish <vdr@linuxtv.org>\n" @@ -554,7 +554,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1076,6 +1076,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" diff --git a/po/tr_TR.po b/po/tr_TR.po index 7bf0fb6..6887b78 100644 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.5.7\n" "Report-Msgid-Bugs-To: <cwieninger@gmx.de>\n" -"POT-Creation-Date: 2011-05-30 19:07+0200\n" +"POT-Creation-Date: 2011-06-12 10:15+0200\n" "PO-Revision-Date: 2007-08-14 20:21+0200\n" "Last-Translator: Oktay Yolgeen <oktay_73@yahoo.de>\n" "Language-Team: Turkish <vdr@linuxtv.org>\n" @@ -553,7 +553,7 @@ msgstr "" msgid "Button$Test" msgstr "" -msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" +msgid "$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&_" msgstr "" msgid "Start/Stop time has changed" @@ -1075,6 +1075,9 @@ msgstr "" msgid "Min. match in %" msgstr "" +msgid "Compare expression" +msgstr "" + msgid "Compare categories" msgstr "" @@ -28,6 +28,7 @@ The project's page is at http://winni.vdr-developer.org/epgsearch #include "epgsearchcfg.h" #include "epgsearchcats.h" #include "searchtimer_thread.h" +#include "uservars.h" #include <vdr/tools.h> @@ -229,10 +230,50 @@ int cRecDone::ChannelNr() // -- cRecsDone ----------------------------------------------------------------- int cRecsDone::GetCountRecordings(const cEvent* event, cSearchExt* search, cRecDone** first, int matchLimit) { - return GetCountRecordings(event, search->compareTitle, search->compareSubtitle, search->compareSummary, search->catvaluesAvoidRepeat, first, matchLimit); + return GetCountRecordings(event, search->compareTitle, search->compareSubtitle, search->compareSummary, search->compareExpression, search->catvaluesAvoidRepeat, first, matchLimit); } -int cRecsDone::GetCountRecordings(const cEvent* event, bool compareTitle, int compareSubtitle, bool compareSummary, unsigned long catvaluesAvoidRepeat, cRecDone** first, int matchLimit) +bool CatValuesMatch(unsigned long catvaluesAvoidRepeat, const string& rDescr, const string& eDescr) +{ + bool bCatMatch = ((rDescr != "" && eDescr != "") || (rDescr == "" && eDescr == "")); + cSearchExtCat *SearchExtCat = SearchExtCats.First(); + int index = 0; + while (catvaluesAvoidRepeat > 0 && SearchExtCat && bCatMatch) + { + if (catvaluesAvoidRepeat & (1<<index)) + { + char* eCatValue = GetExtEPGValue(eDescr.c_str(), SearchExtCat->name); + char* rCatValue = GetExtEPGValue(rDescr.c_str(), SearchExtCat->name); + if ((!eCatValue && rCatValue) || + (!rCatValue && eCatValue) || + (eCatValue && rCatValue && strcmp(eCatValue, rCatValue) != 0)) + bCatMatch = false; + free(eCatValue); + free(rCatValue); + } + SearchExtCat = SearchExtCats.Next(SearchExtCat); + index++; + } + return bCatMatch; +} + +bool MatchesInExpression(const string& expression, const cRecDone* recDone, const cEvent* event) +{ + cVarExpr varExpr(expression); + + cEvent recDoneEvent(0); + recDoneEvent.SetTitle(recDone->title); + recDoneEvent.SetShortText(recDone->shortText); + recDoneEvent.SetDescription(recDone->description); + recDoneEvent.SetStartTime(recDone->startTime); + recDoneEvent.SetDuration(recDone->duration); + + string resRecDone = varExpr.Evaluate(&recDoneEvent); + string resEvent = varExpr.Evaluate(event); + return resRecDone == resEvent; +} + +int cRecsDone::GetCountRecordings(const cEvent* event, bool compareTitle, int compareSubtitle, bool compareSummary, const char* compareExpression, unsigned long catvaluesAvoidRepeat, cRecDone** first, int matchLimit) { if (first) *first = NULL; @@ -265,7 +306,7 @@ int cRecsDone::GetCountRecordings(const cEvent* event, bool compareTitle, int co eRawDescr = rawDescr?rawDescr:""; if (rawDescr) free(rawDescr); } - + cRecDone* firstrecDone = NULL; cRecDone* recDone = First(); while (recDone) @@ -296,46 +337,15 @@ int cRecsDone::GetCountRecordings(const cEvent* event, bool compareTitle, int co if ((!compareTitle || rTitle == eTitle) && (!compareSubtitle || (rSubtitle == eSubtitle && rSubtitle !="")) && - (!compareSummary || DescriptionMatches(eRawDescr.c_str(), rRawDescr.c_str(), matchLimit))) + (!compareSummary || DescriptionMatches(eRawDescr.c_str(), rRawDescr.c_str(), matchLimit)) && + (catvaluesAvoidRepeat == 0 || CatValuesMatch(catvaluesAvoidRepeat, rDescr, eDescr)) && + (compareExpression == NULL || strlen(compareExpression) == 0 || MatchesInExpression(compareExpression, recDone, event))) { - if (catvaluesAvoidRepeat != 0) // check categories - { - bool bCatMatch = ((rDescr != "" && eDescr != "") || (rDescr == "" && eDescr == "")); - cSearchExtCat *SearchExtCat = SearchExtCats.First(); - int index = 0; - while (catvaluesAvoidRepeat > 0 && SearchExtCat && bCatMatch) - { - if (catvaluesAvoidRepeat & (1<<index)) - { - char* eCatValue = GetExtEPGValue(eDescr.c_str(), SearchExtCat->name); - char* rCatValue = GetExtEPGValue(rDescr.c_str(), SearchExtCat->name); - if ((!eCatValue && rCatValue) || - (!rCatValue && eCatValue) || - (eCatValue && rCatValue && strcmp(eCatValue, rCatValue) != 0)) - bCatMatch = false; - free(eCatValue); - free(rCatValue); - } - SearchExtCat = SearchExtCats.Next(SearchExtCat); - index++; - } - if (bCatMatch) - { - if (!firstrecDone) firstrecDone = recDone; - else - if (firstrecDone->startTime > recDone->startTime) - firstrecDone = recDone; - count++; - } - } - else - { - if (!firstrecDone) firstrecDone = recDone; - else - if (firstrecDone->startTime > recDone->startTime) - firstrecDone = recDone; - count++; - } + if (!firstrecDone) firstrecDone = recDone; + else + if (firstrecDone->startTime > recDone->startTime) + firstrecDone = recDone; + count++; } recDone = Next(recDone); @@ -69,7 +69,7 @@ class cRecsDone : public cList<cRecDone>, public cMutex { } cRecsDone(void) {} int GetCountRecordings(const cEvent* event, cSearchExt* search, cRecDone** first = NULL, int matchLimit = 90); - int GetCountRecordings(const cEvent*, bool compareTitle, int compareSubtitle, bool compareSummary, unsigned long, cRecDone** first = NULL, int matchLimit = 90); + int GetCountRecordings(const cEvent*, bool compareTitle, int compareSubtitle, bool compareSummary, const char* compareExpression, unsigned long, cRecDone** first = NULL, int matchLimit = 90); int GetTotalCountRecordings(cSearchExt* search, cRecDone** first); void RemoveSearchID(int ID); bool Load(const char *FileName = NULL); @@ -354,7 +354,7 @@ public: class cMonthVar : public cInternalVar { public: - cMonthVar() : cInternalVar("%year%") {} + cMonthVar() : cInternalVar("%month%") {} string Evaluate(const cEvent* e, bool escapeStrings = false) { if (!e) return ""; @@ -382,6 +382,21 @@ public: } }; +class cWeekVar : public cInternalVar { +public: + cWeekVar() : cInternalVar("%week%") {} + string Evaluate(const cEvent* e, bool escapeStrings = false) + { + if (!e) return ""; + char day[3] = ""; + struct tm tm_r; + const time_t t = e->StartTime(); + tm *tm = localtime_r(&t, &tm_r); + strftime(day, sizeof(day), "%V", tm); + if (escapeStrings) return "'" + EscapeString(day) + "'"; else return day; + } +}; + class cChannelNrVar : public cInternalVar { public: cChannelNrVar() : cInternalVar("%chnr%") {} @@ -719,6 +734,7 @@ class cUserVars : public cList<cUserVar> { cYearVar yearVar; cMonthVar monthVar; cDayVar dayVar; + cWeekVar weekVar; cChannelNrVar chnrVar; cChannelShortVar chShortVar; cChannelLongVar chLongVar; @@ -775,6 +791,7 @@ class cUserVars : public cList<cUserVar> { internalVars[yearVar.Name()] = &yearVar; internalVars[monthVar.Name()] = &monthVar; internalVars[dayVar.Name()] = &dayVar; + internalVars[weekVar.Name()] = &weekVar; internalVars[chnrVar.Name()] = &chnrVar; internalVars[chShortVar.Name()] = &chShortVar; internalVars[chLongVar.Name()] = &chLongVar; |