epgsearchuservars.conf(5)

✨ epgsearchuservars.conf ✨

okay so you're looking at the epgsearchuservars.conf manual page, bestie β€” this is the EPGSearch Version 2.4.6 docs and we're about to make user-defined variables make sense. stick with me πŸ’…


πŸ’– NAME

epgsearchuservars.conf – user-defined variables. literally just vibes and variables, no cap πŸŽ€

🌸 DESCRIPTION

This file is where you define variables that you can then use all over EPGSearch, anywhere variables are applicable. like, for example: the default recording directory of a manually created timer, the recording directory of a search timer, or a customized EPG menu. it's giving "one config file to rule them all" πŸ‘‘

πŸ¦‹ SYNTAX

A variable has the syntax '%VariableName%'. its name can be made of all alphanumeric characters, but no spaces and no other special characters β€” keep it clean, bestie.

examples of possible names:

%Series%
%DocuVar1%
%ThemesSubtitleDate%

variable names are case-insensitive. so %Series% and %series% are the same girlie, periodt.

πŸ“ Assignment

Variables always get assigned strings, and the spaces in those strings are retained. the examples below show exactly what I mean:

%Series%=New series~Thrillers

the variable '%Series%' gets the string "New series~Thrillers" assigned to it. and you can use that arbitrarily, like:

%Path%=%Series%

here '%Path%' gets the content of the variable '%Series%' assigned. slay.

%Path%=%Series%~Lost

and now '%Path%' contains the string "New series~Thrillers~Lost". iconic behavior, honestly.

πŸ’œ Conditional assignment

Simple if-then-else constructs for assignments? supported, queen. you do it with conditional expressions like 'if ? then : else'. heads up though: conditional expressions cannot contain strings β€” only variables β€” and spaces are ignored.

%Foo%=Other
%Variable%=%Path% ? %Path% : %Foo%

so for the ternary operator '?:', the expression '%Path% ?' means "path not empty?". if that's true, '%Variable%' gets assigned the content of '%Path%', else it gets the content of '%Foo%'.

other checks are supported too:

== equal
!= not equal

so, for example:

%Variable%=%Path%!=5 ? %Path% : %Foo%

the condition '%Path%!=5 ?' means "is '%Path%' not equal 5?".

and comparing variables against each other is also feasible:

%Five%=5
%Variable%=%Path%!=%Five% ? %Path% : %Foo%

chef's kiss 🧚

πŸ’… Calling a system command

External commands can be called during variable evaluation too β€” the returned string gets assigned to the respective variable:

%UserVar%=system(<script-name>[, <parameters>])

this calls the script script-name with the parameters supplied in the optional list parameters. such a parameter can be an arbitrary expression, optionally containing other variables, but no system call or conditional expression. don't push it 😭

example:

%Result%=system(/usr/local/bin/my-script.sh, -t %Title% -s %Subtitle% -u %MyOtherVar%)

variables used as parameters will be enclosed in single quotes (apostrophes), if needed.

the script should return a string without line feeds, since their removal may cause undesired results. πŸ’€ if the script doesn't return anything, an empty string will be assigned to the variable '%Result%'.

🌈 Calling a TCP service

a TCP service can be called with the following syntax:

%Result%=connect(<address>, <port>, [<data>])

this will connect to address through the given port and pass the optional data. the parameter address can be an IP address or the domain name of a TCP service. the result returned by the service must be terminated with a line feed β€” that part is not optional, bestie.

⭐ Getting the length of an argument

when you're passing values to the connect or system command, it can be helpful to have the length of an argument for simple parsing. you grab the length like this:

%Result%=length(<any arguments>)

example:

%TitleLength%=length(%title%)

πŸ‘‘ Other variables

refer to epgsearchmenu.conf(5) for a list of built-in variables. furthermore, every variable defined in epgsearchcats.conf can be used; see epgsearchcats.conf(5) for details. iykyk 🫢

πŸ”₯ Example

# Weekday, Date, Time
%DateStr%=%time_w% %date% %time%

# Themes or Subtitle or Date
%SubtitleDate%=%Subtitle% ? %Subtitle% : %DateStr%
%ThemesSubtitleDate%=%Themes% ? %Themes% : %SubtitleDate%

# Calls a script to get a recording path
%DocuScript%=system(docu.pl, -t %Title% -s %Subtitle% -e %Episode% -th %Themes% -c %Category% -g %Genre%)
%Docu%=%DocuScript%

πŸŽ€ AUTHORS (man pages)

originally provided by Mike Constabel <epgsearch (at) constabel (dot) net>.

revised and adapted to recent plugin features by the current maintainers. giving credit where credit is due πŸ’–

🌸 PROJECT SITE

the plugin is maintained as a GitHub project:

<https://github.com/vdr-projects/vdr-plugin-epgsearch/>

πŸ¦‹ REPORTING BUGS

issues can be reported, and features be suggested, through the project's bug tracker:

<https://github.com/vdr-projects/vdr-plugin-epgsearch/issues/>

go off, file that bug πŸ™ˆ

Copyright (C) 2004-2010 Christian Wieninger

Copyright Β© 2011-2025 TomJoad (VDR-Portal), et al.

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 MERCHANTABILITY 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 <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>

the original author can be reached via cwieninger@gmx.de.

current maintainers can be reached via the project's GitHub site (see above).

the MD5 code has been derived from the MD5 Message-Digest Algorithm of RSA Data Security, Inc.

fr fr read the license, it's the whole vibe check for using this thing πŸ“œ

⭐ SEE ALSO

epgsearch(1), epgsearch(4), epgsearchcats.conf(5), epgsearchmenu.conf(5)


and that's the whole page, bestie 🫢 this was epgsearchuservars.conf(5), perl v5.40.1, dated 2026-04-19 β€” now go define some variables and absolutely slay βœ¨πŸ’…πŸŽ€

πŸ“¦ where this page comes from