diff options
Diffstat (limited to 'doc/en/epgsearch.4.txt')
-rw-r--r-- | doc/en/epgsearch.4.txt | 856 |
1 files changed, 0 insertions, 856 deletions
diff --git a/doc/en/epgsearch.4.txt b/doc/en/epgsearch.4.txt deleted file mode 100644 index 13b5dd6..0000000 --- a/doc/en/epgsearch.4.txt +++ /dev/null @@ -1,856 +0,0 @@ -epgsearch(5) Epgsearch Version 0.9.24.beta9 epgsearch(5) - - - -NAME - epgsearch - Searchtimer and replacement of the VDR program menu - -OVERVIEW - Since the README get bigger and bigger this man page shall be used to - explain some things in detail. So it’s not really a manual, but an - extended README. - -CONTENT - 1. Using variables in the directory entry of a search timer - 2. The format of epgsearch.conf - 3. Description of the search process - 4. How do Search Timers work? - 5. How to trigger a search timer update? - 6. The sources of the ’Select directory’ menu - 7. Language dependent commands for EPG - 8. Usage from other plugins or scripts - 9. SVDRP interface - 10. Customizing the EPG menus - 11. Working with the timer conflict menu - 12. User defined variables - 13. Email notifications - -1. Using variables in the directory entry of a search timer - If you are using extended EPG information, you can use variables as - part of a directory entry of a search timer. These variables always - have the form ’%variable%’. The name of a variable corresponds with the - internal name of an extended EPG info, as specified in the file - epgsearchcats.conf (samples can be found in subdirectory ’conf’). - Example: - - 1|Category|Kategorie|Information,Kinder,Musik,Serie,Show,Spielfilm,Sport|3 - - The category with ID 1 has the internal name ’Category’. So you could - use it with ’%Category%’. The names are not case sensitive. Sample - directory entries could look like this: - - My Movies~%Category% - Childrens Movies~%category% - %CATEGORY%~%genre% - - There are also three other variables: %Title%, %Subtitle% and %Chan‐ - nel%. If you don’t use %Title%, the title is always automatically - appended to the directory entry, when a timer will be created. If you - set ’serial recording’ to ’yes’ in your search timer then also the sub‐ - title will be automatically appended. So the directory entry - - %Category%~%Genre%~%Title%~%Subtitle% - - is the same as - - %Category%~%Genre% - (with ’serial recording’ set to ’yes’). - - The %Channel% variable gets replaced with the name of the channel. - - Attention: Automatically appending title and subtitle will not be done, - if you use the variables %Title% or %Subtitle% in the directory entry. - This allows to form directory entries like this one: - - %Category%~%Genre%~%Title%~%Episode%~%Subtitle% - - There is also another variable %search.query% that will be replaced - with the query of the search timer. - - See also "epgsearchuservars.conf(5)". - -2. The format of epgsearch.conf - Due to some new features there was a change in the format. The format - is now signed with a comment in the first line. The field delimiter is - ’:’: - - 1 - unique search timer id - 2 - the search term - 3 - use time? 0/1 - 4 - start time in HHMM - 5 - stop time in HHMM - 6 - use channel? 0 = no, 1 = Interval, 2 = Channel group, 3 = FTA only - 7 - if ’use channel’ = 1 then channel id[|channel id] in vdr format, - one entry or min/max entry separated with |, if ’use channel’ = 2 - then the channel group name - 8 - match case? 0/1 - 9 - search mode: - 0 - the whole term must appear as substring - 1 - all single terms (delimiters are blank,’,’, ’;’, ’|’ or ’~’) - must exist as substrings. - 2 - at least one term (delimiters are blank, ’,’, ’;’, ’|’ or ’~’) - must exist as substring. - 3 - matches exactly - 4 - regular expression - 5 - fuzzy searching (specify tolerance in parameter 42, not available - for EPG categories) - 10 - use title? 0/1 - 11 - use subtitle? 0/1 - 12 - use description? 0/1 - 13 - use duration? 0/1 - 14 - min duration in minutes - 15 - max duration in minutes - 16 - use as search timer? 0/1/2 (with 2 one can specify time margins in - parameter 48/49 where the search timer is active) - 17 - use day of week? 0/1 - 18 - day of week (0 = Sunday, 1 = Monday...; - -1 Sunday, -2 Monday, -4 Tuesday, ...; -7 Sun, Mon, Tue) - 19 - use series recording? 0/1 - 20 - directory for recording - 21 - priority of recording - 22 - lifetime of recording - 23 - time margin for start in minutes - 24 - time margin for stop in minutes - 25 - use VPS? 0/1 - 26 - action: - 0 = create a timer - 1 = announce only via OSD (no timer) - 2 = switch only (no timer) - 27 - use extended EPG info? 0/1 - 28 - extended EPG info values. This entry has the following format - (delimiter is ’|’ for each category, ’#’ separates id and value): - 1 - the id of the extended EPG info category as specified in - epgsearchcats.conf - 2 - the value of the extended EPG info category - (a ’:’ will be translated to "!^colon^!", e.g. in "16:9") - 29 - avoid repeats? 0/1 - 30 - allowed repeats - 31 - compare title when testing for a repeat? 0/1 - 32 - compare subtitle when testing for a repeat? 0/1 - 33 - compare description when testing for a repeat? 0/1 - 34 - compare extended EPG info when testing for a repeat? - This entry is a bit field of the category IDs. - 35 - accepts repeats only within x days - 36 - delete a recording automatically after x days - 37 - but keep this number of recordings anyway - 38 - minutes before switch (if action = 2) - 39 - pause if x recordings already exist - 40 - blacklist usage mode (0 none, 1 selection, 2 all) - 41 - selected blacklist IDs separated with ’|’ - 42 - fuzzy tolerance value for fuzzy searching - 43 - use this search in favorites menu (0 no, 1 yes) - 44 - number of the search menu template to use (only available if multiple - search result templates are defined in epgsearchmenu.conf) - 45 - auto deletion mode (0 don’t delete search timer, 1 delete after given - count of recordings, 2 delete after given days after first recording) - 46 - count of recordings after which to delete the search timer - 47 - count of days after the first recording after which to delete the search - timer - 48 - first day where the search timer is active (see parameter 16) - 49 - last day where the search timer is active (see parameter 16) - 50 - ignore missing EPG categories? 0/1 - 51 - unmute sound if off when used as switch timer - - A ’:’ in the search term or the directory entry will be translated in a - ’|’. If a ’|’ exists in the search term, e.g. when using regular - expressions, it will be translated to "!^pipe^!" (I know it’s ugly ;-)) - - See also "epgsearch.conf(5)". - -3. Description of the search process - First, for each broadcasting a search text divided by ’~’ is created, - depending on the settings of ’Use title’, ’Use subtitle’ and ’Use - description’: - - title~subtitle~description - - If "Match case" is not set, the search text and the search term are - transformed to lower case. Now depending on the search mode, the - search term will be looked up in the search text: - - - ’Phrase’ matches - if the search term is found anywhere in the search text. - - - ’at least one word’, ’all words’ - first the search term will be split in single words. Delimiters are - a blank and the characters ’,’ ’;’ ’|’ ’~’. - - Then we check if at least one or all words appear in the search - text. - - - ’match exactly’ - matches if search term and search text are identical. - - - ’regular expression’ - the search is done with a regular expression. You don’t need a - leading and trailing ’/’ in your search term. Two standards of - regular expression are supported: extended POSIX and Perl compati‐ - ble regular expressions (PCRE) (see INSTALL). - - If the search was successful until now, the other criterions (start - time, duration, week day) are checked. - -4. How do Search Timers work? - With each update, the plugin searches for new matches of your search - timers. If a new match is found then a new timer is created. For serial - recordings, the subtitle is appended to the recording directory. Many - providers deliver the subtitle just 1-2 days before the event. The plu‐ - gin uses then a date/time string for the subtitle, but replaces this - one later if the subtitle is present. - - Start and end times of a broadcasting often vary a little bit. To avoid - getting many different timers for the same event, the plugin checks - before adding a new timer, if there is one, that has start and end - times which only differ by a maximum of 10 minutes (or the events dura‐ - tion if this is less then 10 minutes). If so, the present timer is mod‐ - ified, else a new timer is created. If the timer was set to inactive - there will be no update. Also manually corrected priority or lifetime - will not be changed when updating. - - If you have set ’Announce only (no timer)’ to yes, no timer is created. - Instead you get an OSD message about the event. This message is dis‐ - played at each scan, but only if there is no timer for the event. - -5. How to trigger a search timer update? - the update of search timers runs in its own thread. There are several - ways to trigger it: - - - automatically - after VDR starts there is always an update (after a few seconds). - After this, the setup option ’Update interval’ tells epgsearch when - the next update should be done repeatedly (in minutes). - - - manually extern - the thread observes the file ’.epgsearchupdate’ in the plugins con‐ - fig directory. When you - - touch /path_to_file/.epgsearchupdate - - this will also trigger an update. So this is a simple solution to - make an update e.g. by a script. - - - manually intern - calling actions or pressing ’3’ in the menu of searches asks also - for an update. - - - from other plugins - - there’s a service ’Epgsearch-updatesearchtimers-v1.0’ that can be used - with the service interface of VDR from other plugins with the option to - inform via OSD when the update has finished - -6. The sources of the ’Select directory’ menu - This menu displays directories, that can be used for search timers or - ordinary timers. The items displayed are read from the following - sources: - - * current recording directories - * current timer directories - * directories used in search timers - * directories specified in F<epgsearchdirs.conf>, - see C<epgsearchdirs.con(5)> - - The menu merges theses directories and displays only distinct directo‐ - ries. With key ’yellow’ one can change the depth of the directories - shown. If there are items, that contain category variables like - ’%genre%’, these entries are always shown before any other directories. - They are also not level dependent, but are always shown with their full - directory. - - If this menu is called from the timer edit menu and an item is selected - that contains the variables "%title%" or "%subtitle" then the ’file’ - item of the timer gets cleared, since title or subtitle already exist - in the ’directory’ item. This list can also be accessed via the SVDRP - command ’LSRD’. - -7. Language dependent commands for EPG - If you like to have a language dependent list of commands simply trans‐ - late your present epgsearchcmds.conf to your preferred OSD language and - store it with the filename epgsearchcmds-XXX.conf, where XXX is the - language code from i18n.c: - - { "eng,dos", - "deu,ger", - "slv", - "ita", - "dut,nla,nld", - "por", - "fra,fre", - "nor", - "fin,smi", - "pol", - "esl,spa", - "ell,gre", - "sve,swe", - "rom,rum", - "hun", - "cat,cln", - "rus", - "hrv", - "est", - "dan", - } - - If there are more codes for one language (e.g. "deu,ger") choose one of - them. If there is no language dependent file, epgsearch loads the file - epgsearchcmds.conf. - - See also "epgsearchcmds.conf(5)". - -8. Usage from other plugins or scripts - Searching the EPG and other functionality can be used by other plugins - or scripts. There are two approaches: - - 8.1. File-based (intended for use in scripts) - - Therefore simply create the file ’.epgsearchrc’ in the plugins config - directory with the following lines in it: - - Search=your search term - Searchmode=x // 0=phrase, 1=and, 2=or, 3=regular expression - ChannelNr=x // add this line, to search on a specific channel - UseTitle=x // 1(default) or 0 - UseSubtitle=x // 1(default) or 0 - UseDescr=x // 1(default) or 0 - - Then call Epgsearch via svdrpsend.pl (you must have assigned a key to - it), e.g. - - svdrpsend.pl HITK green - - At startup Epgsearch will look for this file and give you the search - results for your search, if it exists. After that the file is removed. - - A sample script recrep.sh, that searches for the repeats of a recording - exists in the scripts subdirectory of Epgsearch. - - 8.2. via Plugin-Interface (intended for use in plugins) - - A plugin can directly call two functions of epgsearch with only some - lines of source code: - - - searching the EPG for some criteria and display the result list - - extended timer edit menu - - I have added a quick and dirty dummy plugin (source/vdr-epgsearch‐ - client-0.0.1.tgz), that demonstrates the usage. - -9. SVDRP interface - epgsearch implements a SVDRP interface, that can be accessed for exam‐ - ple like this - - svdrpsend.pl PLUG epgsearch LSTS - - the following commands are available: - - search management: - - * ’LSTS [ID]’ to list all searches, or the one with the passed ID - (format is the same as epgsearch.conf) - * ’NEWS <settings>’ to add a new search - REMARK: the value of element ID is ignored. epgsearch will always - assign the next free ID - * ’DELS <ID>’ to delete the search with ID - * ’EDIS <settings>’ to modify an existing search - * ’UPDS [OSD]’ to update the search timers. Passing the optional keyword - ’OSD’ pops up an OSD message after the update has finished. - * ’MODS ID ON|OFF’ turns on/off the option ’Use as search timer’. - * ’UPDD’ to reload the file epgsearchdone.data, e.g. after an - external tool has modified it. - * ’SETS <ON|OFF>’ to temporarily activate or cancel the search timer background - thread. - * ’FIND <settings>’ for searching the EPG - input is the same as with ’NEWS’. output is a list of found events formatted - as ’NEWT’ lines. So they can be immediately used to create a new timer for - an event. - * ’QRYS < ID(s) >’ to get the results for a search with the given - ID. Multiple IDs can also be passed and have to be separated with ’|’. - The results are formatted like this: - - search ID : // the ID of the corresponding search timer - event ID : // VDR event ID - title : // event title, any ’:’ will be converted to ’|’ - episode name : // event short text, any ’:’ will be converted to ’|’ - event start : // event start in seconds since 1970-01-01 - event stop : // event stop in seconds since 1970-01-01 - channel : // channel ID in VDR’s internal representation (e.g. ’S19.2E-1-1101-28106’) - timer start : // timer start in seconds since 1970-01-01 (only valid if timer flag is > 0) - timer stop : // timer stop in seconds since 1970-01-01 (only valid if timer flag is > 0) - timer file : // timer file (only valid if timer flag is > 0) - timer flag : // 0 = no timer needed, 1 = has timer, 2 timer planned for next update) - * ’QRYS <settings>’ to get the results for a search with the given search - settings. - * ’QRYF [hours]’ to get the results for the favorites menu, see QRYS for - result format. The optional parameter specifies the number of hours to - evaluate and defaults to 24h. - - channel group management: - - * ’LSTC [channel group name]’ - list all channel groups or if given the one with name ’group name’ - * ’NEWC <channel group settings>’ - create a new channel group, format as in epgsearchchangrps.conf - * ’EDIC <channel group settings>’ - modify an existing channel group, format as in epgsearchchangrps.conf - * ’DELC <channel group name>’ - delete an existing channel group - * ’RENC <old channel group name|new channel group name>’ - rename an existing channel group - - blacklist management: - - * ’LSTB [ID]’ to list all blacklists, or the one with the passed ID - (format is the same as epgsearchblacklists.conf) - * ’NEWB <settings>’ to add a new blacklist - REMARK: the value of element ID is ignored. epgsearch will always - assign the next free ID - * ’DELB <ID>’ to delete the blacklist with ID - * ’EDIB <settings>’ to modify an existing blacklist - - search template management: - - * ’LSTT [ID]’ to list all search templates, or the one with the passed ID - (format is the same as epgsearch.conf) - * ’NEWT <settings>’ to add a new search template - REMARK: the value of element ID is ignored. epgsearch will always - assign the next free ID - * ’DELT <ID>’ to delete the search template with ID - * ’EDIT <settings>’ to modify an existing search template - * ’DEFT [ID]’ returns the ID of the default search template. When passing an - ID it activates the corresponding template as default. - - extended EPG categories: - - * ’LSTE [ID] to get the extended EPG categories defined in epgsearchcats.conf - or the one with the given ID. (format is the same as epgsearchcats.conf) - - misc: - - * ’SETP [option]’ returns the current value of the given setup option or a - list of all options with their current values. - The following options can be accessed: - - ShowFavoritesMenu - - UseSearchTimers - - timer conflicts: - - * ’LSCC [REL]’ returns the current timer conflicts. With the option ’REL’ only - relevant conflicts are listed. The result list looks like this for example - when we have 2 timer conflicts at one time: - - 1190232780:152|30|50#152#45:45|10|50#152#45 - - ’1190232780’ is the time of the conflict in seconds since 1970-01-01. It’s - followed by list of timers that have a conflict at this time: - - ’152|30|50#152#45’ is the description of the first conflicting timer. Here: - - ’152’ is VDR’s timer id of this timer as returned from VDR’s LSTT command - ’30’ is the percentage of recording that would be done (0...100) - ’50#152#45’ is the list of concurrent timers at this conflict - - ’45|10|50#152#45’ describes the next conflict - -10. Customizing the EPG menus - The file epgsearchmenu.conf in your plugins config directory is used to - store the entries for customizing the EPG menus. You specify the look - of each menu (What’s on now, What’s on next, What’s on at ..., Sched‐ - ule, Search results, Favorites) with a separate line. Here’s a sample: - - MenuWhatsOnNow=%chnr%:3|%progrt2s%:5| %time% %t_status%:8|%category%:6| %title% ~ %subtitle%:35 - MenuWhatsOnNext=%chnr%:3|%time% %t_status%:8|%category%:8| %title% ~ %subtitle%:35 - MenuWhatsOnElse=%chnr%:3|%time% %t_status%:8|%category%:8| %title% ~ %subtitle%:35 - MenuSchedule=%time% %t_status%:8|%genre%:14| %title% ~ %subtitle%:35 - MenuSearchResults=%chnr%:3|%datesh% %time% %t_status%:14|%genre%:8| %title%%colon% %subtitle%:35 - MenuFavorites=%chnr%:3|%time%:6|%timespan%:7|%t_status%:14|%genre%:8| %title%%colon%%subtitle%:35 - - E.g. the entry ’MenuWhatsOnNow’ tells epgsearch how you would like to - build a line for the menu ’What’s on now’. This would create a menu - line starting with the channel number, followed by a progress bar in - text2skin style, a space of one char, the start time, the timer status, - the EPG category (like "movie") and finally the title and subtitle. - - The values for MenuWhatsOnNext, MenuWhatsOnElse, MenuSchedule, MenuSe‐ - archResults, MenuFavorites specify the menu ’What’s on next’, ’What’s - on at ...’, ’Schedule’, ’Search results’ and ’Favorites’ respectively. - If you do not specify one entry, epgsearch uses it’s default menu look. - - ’MenuSearchResults’ has something special: If you want to have differ‐ - ent layouts for your search results depending on the search, you can - use more then one menu template. Simply define e.g. an additional - - MenuSearchResultsTip of the Day=%chnr%:3|%time_w%:4|%t_status%:3|%genre%:10|%title%%colon% %subtitle%:35 - - This will produce an additional menu item "Result menu layout" in the - edit menu of a search where you can choose between the default menu - template and your own templates. In the example above you will get "Tip - of the Day" as selection entry, since epgsearch simply cuts the leading - "MenuSearchResults". When you display the search results the chosen - template will be used instead of the default one. - - The following variables exist: - - %time% - start time in format HH:MM - %timeend% - end time in format HH:MM - %date% - start date in format TT.MM.YY - %datesh% - start date in format TT.MM. - %time_w% - weekday name - %time_d% - start day in format TT - %time_lng% - start time in seconds since 1970-01-01 00:00 - %timespan% - timespan from now to the beginning of an event, e.g. ’in 15m’ - or the time an event is already running, e.g. ’10m’. - %length% - length in seconds - %title% - title - %subtitle% - subtitle - %summary% - summary - %htmlsummary% - summary, where all CR are replaced with ’<br />’ - %eventid% - numeric event ID - %t_status% - timer status (’T’, ’t’, ’R’) - %v_status% - VPS status - %r_status% - running status - %status% - complete status, the same as - ’%t_status%%v_status%%r_status%’ - - %<epg-category>% - a value from the extended EPG categories, specified in - epgsearchcats.conf, like %genre% or %category% - - for the ’Whats on...’ and ’Search results’ menu there are also: - - %chnr% - channel number - %chsh% - the short channel name (>=vdr-1.3.15) - %chlng% - the ’normal’ channel name - %chdata% - VDR’s internal channel representation (e.g. ’S19.2E-1-1101-28106’) - %progr% - graphical progress bar (not for menu ’Search results’) - %progrT2S% - progress bar in text2skin style (not for menu ’Search results’) - - some indepent variables: - - %colon% - the sign ’:’ - %datenow% - current date in format TT.MM.YY - %dateshnow% - current date in format TT.MM. - %timenow% - current time in format HH:MM - %videodir% - VDR video directory (e.g. /video) - %plugconfdir% - VDR plugin config directory (e.g. /etc/vdr/plugins) - %epgsearchdir% - epgsearchs config directory (e.g. /etc/vdr/plugins/epgsearch) - - The variables are not case sensitive. You can also use variables for - extended EPG categories defined in epgsearchcats.conf or use your own - user defined variables defined in epgsearchuservars.conf - - An entry consists of up to 6 tables separated with ’|’. The last entry - of each table should declare the table width in chars, separated with - ’:’. - - If you use a separator like ’~’, ’-’ or ’#’ to separate items like - title or subtitle, e.g. %title% ~ %subtitle%, and the subtitle is - empty, then epgsearch will try to fix this automatically to avoid a - trailing separator. - - You should vary the tab width values to fit your needs, since the look - often depends on the selected skin. epgsearchmenu.conf is not reloaded - with every plugin call, since this is only useful when testing the conf - file. To activate the permanent reload for testing your conf, pass the - new start parameter ’-r’ or ’--reloadmenuconf’ in your runvdr. - - There’s a sample epgsearchmenu.conf in the subdirectory "conf". For a - quick try copy it to your plugins config directory (e.g. /etc/vdr/plug‐ - ins). - - To enable icons from WarEagleIcon-Patch simply put the line - - WarEagleIcons=1 - - to epgsearchmenu.conf. - - NOTE: As long as there is a file epgsearchmenu.conf with an entry for a - special menu, all setup settings regarding the look of this menu are - ignored. - - See also "epgsearchmenu.con(5)". - -11. Working with the timer conflict menu - If a conflict is detected within the periodic conflict background check - you get an OSD message which informs you about it. Pressing ’Ok’ you - will get a menu that displays all relevant conflicts. You can manually - call this menu in epgsearch in the menu ’Search/Actions’. - - Besides the relevant conflicts (relevance is controlled via the setup - options of epgsearch) there may also be conflicts which are not classi‐ - fied as important. If so, you can press ’Show all’ to get the complete - list. The menu title always displays the number of relevant conflicts - and the total number. - - The list displays first the time when a conflict appears and then all - timers that will fail here. A timer entry consists of the channel num‐ - ber and its name followed by the timer priority and the percentage - value that shows how much of the timer will be recorded. Finally the - timer’s file entry is displayed. - - When you select a timer entry and press ’Ok’ or ’Details’ you get a new - menu which displays all concurrent timers. This menu allows you to - resolve the conflict by - - - searching a repeat for an event - - disabling a timer - - deleting a timer - - changing the timers start- or stop-time or its priority - - executing any other commands on this timer - - An entry of this menu consists of the sign ’>’ to indicate an active - timer, the channel number, the start and stop time, the priority, the - number of the device that will do the recording (or ’C’ for conflict) - and the timer’s file entry. Pressing ’Ok’ on a timer entry will show - you its event description if present. - - If one returns from this menu to the conflict overview menu there will - be an automatic update to see if a conflict was really resolved. Some - changes to a timer (like modifying start/stop or deleting a timer) in - the conflict details menu also cause an immediate return to the - overview menu and produce an update. - -12. User defined variables - You can create your own variables to be used in any place that supports - variables, like the default recording directory for manually created - timers, the recording directory of a search timer or in your customized - EPG menus. Put them in the file epgsearchuservars.conf. - - Variables looks like %Variablename%. - - "Variablename" can be consist of any alphanumerical character. Space - and special characters are not allowed. - - The variable names are case-insensitive. - - Examples for possible names: - - %Series% %DocuVar1% %ThemesSubtitleDate1% - - Assignment - - %Series%=New series~Thriller - - The variable %Series% will be assigned with the string "New - series~Thriller". - - Assignments are always strings. Spaces stay spaces. - - %Path%=%Series% - - The variable %Path% gets the content of the variable %Series%. - - You can do nearly everything: - - %Path%=%Serie%~Lost - - The variable %Path% contains now the string "New series~Thriller~Lost". - - Control structures - - You can use simple "if then else" constructions. - - These constructions cannot contain strings, only variables. Spaces are - ignored. - - %Foo%=Other - - %Variable%=%Path% ? %Path% : %Foo% - - If %Path% is not empty, assign the content of %Path% to %Variable%, - otherwise the content of %Foo%. - - "%Path% ?" means "not empty?". You can use other checks. - - %Variable%=%Path%!=5 ? %Path% : %Foo% - - "%Path%!=5 ?" means "is %Path% equal 5?" - - You can also compare variables. - - %Five%=5 - - %Variable%=%Path%!=%Five% ? %Path% : %Foo% - - Other possible checks: - - == equal - != not equal - - Calling a system command - - You can call external commands. The returned string will be assigned to - a variable - - %uservar%=system(scriptname[, parameters]) - - Calls the script "scriptname" with the parameters defined in the - optional list of ’parameters’. This can be an arbitrary expression con‐ - taining other user variables, but not again a system call or a condi‐ - tional expression. - - Sample: - - %myVar%=system(/usr/local/bin/myscript.sh, -t %title% -s %subtitle% -u %myOtherVar%) - - The script must return a string without line break! - - If the script returns nothing, an empty string will be assigned to the - Variable %Result%. - - Possible variables - - for a list of already builtin variables refer to the section "Customiz‐ - ing the EPG menus" Furthermore you can use every variable defined in - epgsearchcats.conf. - - See "epgsearchcats.conf(5)". - - EXAMPLES - - # Weekday, Date, Time - %DateStr%=%time_w% %date% %time% - - # Themes or Subtitle or Date - %ThemesSubtitleDate1%=%Subtitle% ? %Subtitle% : %DateStr% - %ThemesSubtitleDate%=%Themes% ? %Themes% : %ThemesSubtitleDate1% - - # Calls this script to get a recording path - %DocuScript%=system(doku.pl, -t %Title% -s %Subtitle% -e %Episode% -th %Themes% -c %Category% -g %Genre%) - %Docu%=%DocuScript% - -13. Email notification - If you want to get email notifications about timers added/modi‐ - fied/removed by the search timer thread or about timer conflicts, first - copy the script ’sendEmail.pl’ to the place where your executables are - (e.g. /usr/local/bin) and then configure your email account in the - setup. Press ’Test’ to check if it works. There should be something - like ’Email successfully sent’ at the end of the output. The content - of the mails is defined by the files - - - epgsearchupdmail.templ (for search timer update notifications) - - epgsearchconflmail.templ (for timer conflict notifications) - - You can find sample files in the ’conf’ directory. Copy them to - epgsearchs config directory (e.g. /etc/vdr/plugins/epgsearch). - - Customizing the notifications mails - - The content of the mails can be customized in many ways. You can use - plain text or HTML (see the sample conf/epgsearchupdmail-html.templ). - For an update mail you have to define the following sections: - - - "subject" to be used as mail subject - - "mailbody" the body of the mail: - put ’%update.newtimers%’ in the place where the list of new timers should - appear. The same for %update.modtimers% and %update.deltimers% for the - list of changed or deleted timers. - - "timer" the description of one timer. This section is used to display one - timer within a timer list, e.g. in %update.newtimers% - - each section is enclosed in a pseudo XML tag. - - The following variables can be used in the section <mailbody>: - - - %update.newtimers% - will be replaced with the list of new timers - created with this update. The timers are - displayed as defined in the section ’<timer>’ - - %update.countnewtimers% - the number of new timers - - %update.modtimers% - same as %update.newtimers% but for modified - timers. - - %update.countmodtimers% - the number of modified timers - - %update.deltimers% - same as %update.newtimers% but for deleted - timers. (Note: a deleted timer has eventually - no event assigned to it. So all event variables - within the timer section will be substituted to - an empty string.) - - %update.countdeltimers% - the number of deleted timers - - %colon% - the sign ’:’ - - %datenow% - current date in format TT.MM.YY - - %dateshnow% - current date in format TT.MM. - - %timenow% - current time in format HH:MM - - The following variables can be used in the section <timer>: - - - %timer.date% - date of the timer - - %timer.start% - start time of the timer - - %timer.stop% - stop time of the timer - - %timer.file% - recording directory of the timer - - %timer.chnr% - channel number - - %timer.chsh% - short channel name - - %timer.chlng% - channel name - - %timer.search% - name of the search timer, that created the timer - - %timer.searchid% - id of the search timer, that created the timer - - any event variable (as in ’10. Customizing the EPG menus’) - - any extended EPG variable as defined in epgsearchcats.conf - - any user variable (as in ’12. User defined variables’) - - For a conflict notification mail the following sections exist: - - - "subject" to be used as mail subject - - "mailbody" the body of the mail. Put %conflict.conflicts% in the place - where the list of conflict times should appear (Note: there can be more - than one timer conflict at the same time!). A conflict time uses the - section ’conflictsat’ to display its content. - - "conflictsat" the description of one time where one or more conflicts - exists. Put %conflict.confltimers% in the place where the list of conflict - timers should appear. - - "confltimer" the description of one conflicting timer - - The following variables can be used in the section <mailbody>: - - - %conflict.count% - complete number of timer conflicts - - %conflict.conflicts% - list of times with conflicting timers - - The following variables can be used in the section <conflictsat>: - - - %conflict.date% - date of the conflict - - %conflict.time% - time of the conflict - - %conflict.confltimers% - list of conflicting timers for this time - - The section <conflicttimer> can use the same variables as the section - <timer> in an update mail (see above). - -SEE ALSO - epgsearch(1), "epgsearch.conf(5)", "epgsearchuservars.con(5)", - "epgsearchdirs.conf(5)", "epgsearchmenu.conf(5)", - "epgsearchcmds.conf(5)" - -AUTHOR (man pages) - Mike Constabel <epgsearch (at) constabel (dot) net> - -REPORT BUGS - Bug reports (german): - - <http://www.vdr-developer.org/mantisbt/> - - Mailing list: - - <http://www.vdr-developer.org/mailman/listinfo/epgsearch> - -COPYRIGHT and LICENSE - Copyright (C) 2004-2007 Christian Wieninger - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MER‐ - CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Or, point - your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - - The author can be reached at cwieninger@gmx.de - - The project’s page is at http://winni.vdr-developer.org/epgsearch - - The MD5 code is derived from the RSA Data Security, Inc. MD5 Message- - Digest Algorithm. - - - -perl v5.8.8 2007-11-07 epgsearch(5) |