Accessing and Storing Functions: Difference between revisions
No edit summary |
|||
(51 intermediate revisions by 4 users not shown) | |||
Line 7: | Line 7: | ||
:Returns a field's value. |
:Returns a field's value. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| name=Field |
|||
|- valign="top" |
|||
| arguments=name, mode, filekey |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>field(</b><i>name</i><b>, </b><i>mode</i><b>)</b></span> |
|||
{{argument optional|mode|1}} |
|||
{{argument optional|filekey|''empty''}} |
|||
The [[#Field|Field()]] function returns the value stored in field <i>name</i>. |
The [[#Field|Field()]] function returns the value stored in field <i>name</i>. |
||
The format of return is selected by <i>mode</i>. |
The format of return is selected by <i>mode</i>.<br> |
||
If the [[FileKey()|''FileKey'']] argument is specified, the value returned will be from the file referenced by that filekey. If not specified, values are returned from the current file. |
|||
Available <i>mode</i> values: |
|||
<div style="margin-left: 20pt;"><table style="border-spacing:0px; border-collapse:collapse; background: #f9f9f9"> |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>0</b></td><td>Raw, unformatted data</td></tr> |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>1</b></td><td>Formatted data</td></tr> |
|||
</table></div> |
|||
{{argument table |
|||
Argument <i>mode</i> is optional (defaults to 1). |
|||
| name=mode |
|||
| contents= |
|||
{{argument table row|0|Raw, unformatted data}} |
|||
{{argument table row|1|Formatted data}} |
|||
}} |
|||
| examples= |
|||
'''{{monospace|field(album)}}''' |
|||
: Returns the formatted value of field <i>name</i> {{monospace|album}}. Note that this is equivalent to {{Monospace|[album]}}. |
|||
'''{{monospace|field(date, 0)}}''' |
|||
: Returns the raw, unformatted value stored in the {{monospace|date}} field. Note that this is equivalent to {{monospace|[date,0]}}. |
|||
}} |
|||
=== <span id="FieldQuery">FieldQuery(…)</span> === |
|||
|- valign="top" |
|||
: Return a list of matches based on a list of fields to search, from a selected scope of files. |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>field(album)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the formatted value of field <i>name</i> <span style="font-family: monospace,monospace; font-size:1em;">album</span>. |
|||
Note that this is equivalent to <span style="font-family: monospace,monospace; font-size:1em;">[album]</span>.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>field(date, 0)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the raw, unformatted value stored in the <span style="font-family: monospace,monospace; font-size:1em;">date</span> field. |
|||
Note that this is equivalent to <span style="font-family: monospace,monospace; font-size:1em;">[date,0]</span>.</p> |
|||
|} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
|||
{{function description box |
|||
=== Load(…) === |
|||
| name=FieldQuery |
|||
| arguments=fieldlist, valuelist, return, mode, scope |
|||
| description= |
|||
The [[#FieldQuery|FieldQuery()]] function returns a list of matches based on a list of fields to search, from a selected scope of files.. |
|||
* Fieldlist: a semi-colon delimited list of fields to search, e.g. Director;Studio |
|||
* Valuelist: a value to search for in each field in fieldlist (could be an expression) |
|||
* Return: The single field that is returned when a match is found, values from files returned as a semi-colon delimited list |
|||
* {{argument table |
|||
| name=mode |
|||
| contents= |
|||
{{argument table row|0|Contains}} |
|||
{{argument table row|1|Exact Match}} |
|||
}} |
|||
* {{argument table |
|||
| name=scope |
|||
| contents= |
|||
{{argument table row|0|Current View (faster results - only search files in the current view)}} |
|||
{{argument table row|1|Global (searches all files)}} |
|||
{{argument table row|2|Match files of the same media type ('''''the list is gathered one time, so you will need to restart to see newly imported files''''')}} |
|||
}} |
|||
'''<u>Important Notes</u>''' |
|||
* When providing the value(s) for '''Fieldlist''', library fields are referenced by their names only. i.e., <u>no square brackets.</u> |
|||
* If a library field is desired for use in '''Valuelist''', <u>square brackets are required.</u> |
|||
* When performing searches in list type fields, such as [Actors], each entry in the field list is tested for either 'contains' or 'exactness', as specified, rather than the raw field data. |
|||
* The current implementation returns matches in ANY of the given fields (OR). AND is not possible at this time. [[https://yabb.jriver.com/interact/index.php/topic,124543.msg899283.html#msg899283 Reference]] |
|||
| examples= |
|||
'''{{monospace|FieldQuery(Director,Ridley Scott,Name,1,1)}}''' |
|||
: This queries the [Director] field of ''all'' files for exactly "Ridley Scott", returning a list of names for all positive results: ''Alien;Blade Runner;Gladiator'' |
|||
'''{{monospace|FieldQuery(Actors,Al Pacino,Name,0,0)}}''' |
|||
: This queries the [Actors] field of the currently listed files for any containing "Al Pacino", returning a list of names for all positive results: ''The Godfather;Heat;Scarface;The Irishman'' |
|||
'''{{monospace|FieldQuery(Director;Actors, Sean Penn;Nicole Kidman, Name, 1, 0)}}''' |
|||
: this returns all files where Sean Penn OR Nicole Kidman is in the Director OR Actors field |
|||
}} |
|||
=== <span id="ItemCount">ItemCount(…)</span> === |
|||
:Counts the number of files that have the exact same value of the given expression as the file the expression runs in the context of. |
|||
{{function description box |
|||
| name=ItemCount |
|||
| arguments=field |
|||
| description= |
|||
The [[#ItemCount|ItemCount()]] function counts the number of ''files'' that have the exact same value of the given expression as the ''file'' the expression runs in the context of. |
|||
''{{monospace|field}}'' is the library field name, or names, with control characters escaped, for which a count is desired. |
|||
<u>'''Notes:'''</u><br> |
|||
: * ItemCount is special because it returns counts from the entire library, not just the currently filtered subset. This means ''all'' files and ''all'' media types. |
|||
: * ItemCount can only do what it does by using a cache of the library data. The cache is rebuilt every 60 seconds, so, when testing these, changes may not be immediately noticeable. |
|||
: * Special characters are required to be escaped, otherwise, they will break the expression. For example, use /[Album Artist /(Auto/)/] not [Album Artist (Auto)] |
|||
: * ItemCount counts '''''files'''''. This means that it cannot count, for example, the number of seasons in a series, or the number of discs in an album. |
|||
: * Pay particular attention to the first example shown below regarding list type fields. |
|||
The Interact forum has a [https://yabb.jriver.com/interact/index.php/topic,122319.0.html useful thread] that discusses the above notes in more detail. |
|||
| examples= |
|||
'''{{monospace|ItemCount(/[Artist/])}}''' |
|||
: Returns the number files tagged with the currently associated artist. |
|||
: ''It is important to note that a semi-colon delimited list of artists is treated as a unique value''. For any files where the [Artist] field contains {{monospace|Bob Dylan;Mark Knopfler}}, these tracks will be counted seperately, and '''''not''''' included in the counts where [Artist] is specifically {{monospace|Bob Dylan}} or {{monospace|Mark Knopfler}}. |
|||
'''{{monospace|ItemCount(/[Artist/]/[Genre/])}}''' |
|||
: Returns the number of files of a given {{monospace|artist}} in a given {{monospace|genre}} |
|||
}} |
|||
=== <span id="Load">Load(…)</span> === |
|||
:Outputs the value of a global variable. |
:Outputs the value of a global variable. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| |
| name=Load |
||
| arguments=varname |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>load(</b><i>varname</i><b>)</b></span> |
|||
Loads and outputs the value of the specified global variable <i>varname</i> that has been previously stored with [[#Save|Save()]]. |
Loads and outputs the value of the specified global variable <i>varname</i> that has been previously stored with [[#Save|Save()]]. |
||
| examples= |
|||
|- valign="top" |
|||
'''{{monospace|load(var1)}}''' |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
: Loads and outputs the previous stored value of the global variable named {{monospace|var1}}. |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>load(var1)</nowiki></b></span> |
|||
'''{{monospace|save(math(1 + 2), sum)load(sum)}}''' |
|||
<p style="margin-left:20pt;">Loads and outputs the previous stored value of the global variable named <span style="font-family: monospace,monospace; font-size:1em;">var1</span>. |
|||
: Saves the output of the [[#Math|Math()]] function into {{monospace|sum}}, and then loads and outputs the value of {{monospace|sum}}, which is {{monospace|3}}. |
|||
If <span style="font-family: monospace,monospace; font-size:1em;">var1</span> has not been previously stored, the output will be empty.</p> |
|||
}} |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>save(math(1 + 2), sum)load(sum)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Saves the output of the [[#Math|Math()]] function into <span style="font-family: monospace,monospace; font-size:1em;">sum</span>, and then loads and outputs the value of <span style="font-family: monospace,monospace; font-size:1em;">sum</span>, which is <span style="font-family: monospace,monospace; font-size:1em;">3</span>.</p> |
|||
|} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
|||
=== Note(…) === |
=== <span id="Note">Note(…)</span> === |
||
:Retrieve note fields. |
:Retrieve note fields. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| |
| name=Note |
||
| arguments=field label, field type, occurrence |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>note(</b><i>field label</i><b>, </b><i>field type</i><b>, </b><i>occurrence</i><b>)</b></span> |
|||
{{argument optional|field type|FIRST AVAILABLE}} |
|||
{{argument optional|occurrence|0}} |
|||
The [[#Note|Note()]] function retrieves information from a Media Center Note. |
The [[#Note|Note()]] function retrieves information from a Media Center Note. |
||
Specifically, it returns the contents associated with a <i>field label</i>, of a given <i>field type</i>. |
Specifically, it returns the contents associated with a <i>field label</i>, of a given <i>field type</i>. |
||
Line 67: | Line 133: | ||
The <i>field type</i> selects the specific sub-type for a given <i>field label</i>, and <i>occurrence</i> selects which instance of |
The <i>field type</i> selects the specific sub-type for a given <i>field label</i>, and <i>occurrence</i> selects which instance of |
||
several <i>field label</i> / <i>field type</i> pairs is returned. The <i>occurrence</i> value is zero-based. |
several <i>field label</i> / <i>field type</i> pairs is returned. The <i>occurrence</i> value is zero-based. |
||
| examples= |
|||
'''{{monospace|note(phone)}}''' |
|||
: Returns the value found in the first {{monospace|Phone}} <i>field label</i>. If no {{monospace|Phone}} label exists, nothing is returned. |
|||
'''{{monospace|note(phone, home)}}''' |
|||
: Returns the value found in the first {{monospace|Home}} <i>field type</i> from the {{monospace|Phone}} <i>field label</i>. If the {{monospace|Phone}} label, {{monospace|Home}} type does not exists, nothing is returned. |
|||
'''{{monospace|note(phone, home)}}''' |
|||
: Returns the value found in the first {{monospace|Home}} <i>field type</i> from the {{monospace|Phone}} <i>field label</i>. If the {{monospace|Phone}} label, {{monospace|Home}} type does not exists, nothing is returned. |
|||
'''{{monospace|note(phone, home, 1))}}''' |
|||
: Same as the previous example, but the second instance of the <i>field type</i> is selected instead of the first, since <i>occurrence</i> is zero-based. |
|||
}} |
|||
=== <span id="Save">Save(…)</span> === |
|||
Argument <i>field type</i> is optional (defaults to FIRST AVAILABLE). |
|||
Argument <i>occurrence</i> is optional (defaults to 0). |
|||
|- valign="top" |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>note(phone)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the value found in the first <span style="font-family: monospace,monospace; font-size:1em;">Phone</span> <i>field label</i>. If no <span style="font-family: monospace,monospace; font-size:1em;">Phone</span> label exists, nothing is returned.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>note(phone, home)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the value found in the first <span style="font-family: monospace,monospace; font-size:1em;">Home</span> <i>field type</i> from the <span style="font-family: monospace,monospace; font-size:1em;">Phone</span> <i>field label</i>. |
|||
If the <span style="font-family: monospace,monospace; font-size:1em;">Phone</span> label, <span style="font-family: monospace,monospace; font-size:1em;">Home</span> type does not exists, nothing is returned.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>note(phone, home, 1)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Same as the previous example, but the second instance of the <i>field type</i> is selected instead of the first, since <i>occurrence</i> is zero-based.</p> |
|||
|} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
|||
=== Save(…) === |
|||
:Saves a value to a global variable. |
:Saves a value to a global variable. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| |
| name=Save |
||
| arguments=value, variable, mode |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>save(</b><i>value</i><b>, </b><i>variable</i><b>, </b><i>mode</i><b>)</b></span> |
|||
{{argument optional|mode|0}} |
|||
This [[#Save|Save()]] function saves the <i>value</i> into the specified global <i>variable</i>, and optionally will return that <i>value</i> if <i>mode</i> is set. |
This [[#Save|Save()]] function saves the <i>value</i> into the specified global <i>variable</i>, and optionally will return that <i>value</i> if <i>mode</i> is set. |
||
Once a global <i>variable</i> has been created using [[#Save|Save()]], that <i>variable</i>'s <i>value</i> is available for use with either [[#Load|Load()]] or the pseudo-field "[<i>variable</i>]". |
Once a global <i>variable</i> has been created using [[#Save|Save()]], that <i>variable</i>'s <i>value</i> is available for use with either [[#Load|Load()]] or the pseudo-field "[<i>variable</i>]". |
||
{{argument table |
|||
<div style="margin-left: 20pt;"><table style="border-spacing:0px; border-collapse:collapse; background: #f9f9f9"> |
|||
| name=mode |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>0</b></td><td>Suppress output</td></tr> |
|||
| contents= |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>1</b></td><td>Output variables <i>value</i></td></tr> |
|||
{{argument table row|0|Suppress output}} |
|||
</table></div> |
|||
{{argument table row|1|Output variables <i>value</i>}} |
|||
}} |
|||
Argument <i>mode</i> is optional (defaults to 0). |
|||
| examples= |
|||
'''{{monospace|save(Much Money, local_bank)}}''' |
|||
|- valign="top" |
|||
: Saves the <i>value</i> {{monospace|Much Money}} into the global <i>variable</i> {{monospace|local_bank}}. |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
'''{{monospace|save(More Money, My Bank, 1)}}''' |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>save(Much Money, local_bank)</nowiki></b></span> |
|||
: Saves {{monospace|More Money}} into {{monospace|My Bank}} and outputs the variables <i>value</i> {{monospace|More Money}}. |
|||
<p style="margin-left:20pt;">Saves the <i>value</i> <span style="font-family: monospace,monospace; font-size:1em;">Much Money</span> into the global <i>variable</i> <span style="font-family: monospace,monospace; font-size:1em;">local_bank</span>.</p> |
|||
'''{{monospace|save(math([duration,0] / 60), durmins)if(compare([durmins], >, 5.0), Long Track, Short Track)}}''' |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>save(More Money, My Bank, 1)</nowiki></b></span> |
|||
: Saves the calculated duration in minutes into the <i>variable</i> {{monospace|durmins}}. Notice that subsequent expressions fragments such as the {{monospace|if(compare()...)}} may now use the pseudo-field {{monospace|[durmins]}} as shorthand for {{monospace|load(durmins)}}. |
|||
<p style="margin-left:20pt;">Saves <span style="font-family: monospace,monospace; font-size:1em;">More Money</span> into <span style="font-family: monospace,monospace; font-size:1em;">My Bank</span> and outputs the variables <i>value</i> <span style="font-family: monospace,monospace; font-size:1em;">More Money</span>.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>save(math([duration,0] / 60), durmins)if(compare([durmins], >, 5.0), Long Track, Short Track)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Saves the calculated duration in minutes into the <i>variable</i> <span style="font-family: monospace,monospace; font-size:1em;">durmins</span>. |
|||
Notice that subsequent expressions fragments such as the <span style="font-family: monospace,monospace; font-size:1em;">if(compare()...)</span> may now use the pseudo-field <span style="font-family: monospace,monospace; font-size:1em;">[durmins]</span> as shorthand |
|||
for <span style="font-family: monospace,monospace; font-size:1em;">load(durmins)</span>.</p> |
|||
Additional Examples |
Additional Examples |
||
:[http://yabb.jriver.com/interact/index.php?topic=77826.0 Generating statistics] |
:[http://yabb.jriver.com/interact/index.php?topic=77826.0 Generating statistics] |
||
:[http://yabb.jriver.com/interact/index.php?topic=76581.msg518902#msg518902 Generating album track count] |
:[http://yabb.jriver.com/interact/index.php?topic=76581.msg518902#msg518902 Generating album track count] |
||
:[http://yabb.jriver.com/interact/index.php?topic=72049.0 Generating album ratings] |
:[http://yabb.jriver.com/interact/index.php?topic=72049.0 Generating album ratings] |
||
:[http://yabb.jriver.com/interact/index.php?topic=74116.0 Highlighting playing album] |
:[http://yabb.jriver.com/interact/index.php?topic=74116.0 Highlighting playing album] |
||
:[http://yabb.jriver.com/interact/index.php?topic=90504.0 Expand a sublist into a superset] |
:[http://yabb.jriver.com/interact/index.php?topic=90504.0 Expand a sublist into a superset] |
||
}} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
|||
=== SaveAdd(…) === |
=== <span id="SaveAdd">SaveAdd(…)</span> === |
||
: Adds to a global variable. |
: Adds to a global variable. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| |
| name=SaveAdd |
||
| arguments=variable, value, mode |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>saveadd(</b><i>variable</i><b>, </b><i>value</i><b>, </b><i>mode</i><b>)</b></span> |
|||
{{argument optional}} |
|||
The [[#SaveAdd|SaveAdd()]] function adds <i>value</i> to a global <i>variable</i> either numerically or as a list item. |
The [[#SaveAdd|SaveAdd()]] function adds <i>value</i> to a global <i>variable</i> either numerically or as a list item. |
||
The <i>mode</i> argument indicates how <i>variable</i> is modified. |
The <i>mode</i> argument indicates how <i>variable</i> is modified. |
||
{{argument table |
|||
Available <i>mode</i> values: |
|||
| name=mode |
|||
| contents= |
|||
{{argument table row|0|Add numeric <i>value</i> (integer or decimal) to <i>variable</i>}} |
|||
{{argument table row|1|Append string <i>value</i> as a list item to <i>variable</i>}} |
|||
{{argument table row|2|Prepend string <i>value</i> as a list item to <i>variable</i>}} |
|||
}} |
|||
| examples= |
|||
'''{{monospace|saveadd(v, 1)}}''' |
|||
: Numerically increments the global <i>variable</i> {{monospace|v}} by {{monospace|1}}. |
|||
'''{{monospace|saveadd(v, math(2 - 6))}}''' |
|||
: Numerically increments the global <i>variable</i> {{monospace|v}} by the outcome of the [[#Math|Math()]], which is {{monospace|-4}}. |
|||
'''{{monospace|save(foo, v)saveadd(v, bar, 1)load(v)}}''' |
|||
: Loads <i>value</i> {{monospace|foo}} into <i>variable</i> {{monospace|v}}, then appends the <i>value</i> {{monospace|bar}} as a list item, and the final {{monospace|load(v)}} expression outputs the result of {{monospace|foo; bar}}. |
|||
'''{{monospace|save(That, v)saveadd(v, This, 2)load(v)}}''' |
|||
: Similar to the previous example, but using the prepend <i>mode</i>, resulting in the output {{monospace|This; That}}. |
|||
}} |
|||
=== <span id="SetField">SetField(…)</span> === |
|||
<div style="margin-left: 20pt;"><table style="border-spacing:0px; border-collapse:collapse; background: #f9f9f9"> |
|||
:Sets a field's value. |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>0</b></td><td>Add numeric <i>value</i> (integer or decimal) to <i>variable</i></td></tr> |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>1</b></td><td>Append string <i>value</i> as a list item to <i>variable</i></td></tr> |
|||
<tr><td style="text-align:left; padding-right:20pt"><b>2</b></td><td>Prepend string <i>value</i> as a list item to <i>variable</i></td></tr> |
|||
</table></div> |
|||
{{function description box |
|||
Argument <i>mode</i> is optional (defaults to 0). |
|||
| name=SetField |
|||
| arguments=name, value |
|||
| description= |
|||
The [[#SetField|SetField()]] function sets the value of <i>name</i> to <i>value</i>. |
|||
| examples= |
|||
|- valign="top" |
|||
'''{{monospace|setfield(album, Living in the Past)}}''' |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
: Sets the value of the {{monospace|album}} field to {{monospace|Living in the Past}}. |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>saveadd(v, 1)</nowiki></b></span> |
|||
}} |
|||
<p style="margin-left:20pt;">Numerically increments the global <i>variable</i> <span style="font-family: monospace,monospace; font-size:1em;">v</span> by <span style="font-family: monospace,monospace; font-size:1em;">1</span>.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>saveadd(v, math(2 - 6))</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Numerically increments the global <i>variable</i> <span style="font-family: monospace,monospace; font-size:1em;">v</span> by the outcome of the [[#Math|Math()]], which is <span style="font-family: monospace,monospace; font-size:1em;">-4</span>.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>load(foo, v)saveadd(v, bar, 1)load(v)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Loads <i>value</i> <span style="font-family: monospace,monospace; font-size:1em;">foo</span> into <i>variable</i> <span style="font-family: monospace,monospace; font-size:1em;">v</span>, then appends the <i>value</i> <span style="font-family: monospace,monospace; font-size:1em;">bar</span> as a list item, and the final <span style="font-family: monospace,monospace; font-size:1em;">load(v)</span> expression outputs the |
|||
result of <span style="font-family: monospace,monospace; font-size:1em;">foo; bar</span>.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>load(That, v)saveadd(v, This, 2)load(v)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Similar to the previous example, but using the prepend <i>mode</i>, resulting in the output <span style="font-family: monospace,monospace; font-size:1em;">This; That</span>.</p> |
|||
|} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
|||
=== Tag(…) === |
=== <span id="Tag">Tag(…)</span> === |
||
: Returns a file's physical tag. |
: Returns a file's physical tag. |
||
{{function description box |
|||
{| style="width: 100%; border-spacing: 0; border: 0px solid black;" align="top" cellpadding="3" cellspacing="0" |
|||
| |
| name=Tag |
||
| arguments=tag name |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 2px 1px 0 2px; border-right: 1px solid #bbb;" width="100" | Description |
|||
| description= |
|||
| style="background: #f9f9f9; color: #111; border-style: solid; border-width: 2px 2px 0 0" width="1200" | <span style="font-family: monospace,monospace; font-size:1em; color:#0f3f8d; font-size:110%"><b>tag(</b><i>tag name</i><b>)</b></span> |
|||
The [[#Tag|Tag()]] function reads and returns the value of <i>tag name</i> directly from a file. The Media Center Library database is not used with [[#Tag|Tag()]], and instead the specified file is read for the requested tag. The spelling and letter case of the <i>tag name</i> must match exactly those stored in the file. ''Performance note'': This function must open and read the actual file, so its performance is significantly slower than other functions which operate on database fields. |
|||
The [[#Tag|Tag()]] function reads and returns the value of <i>tag name</i> directly from a file. |
|||
| examples= |
|||
The Media Center Library database is not used with [[#Tag|Tag()]], and instead the specified file is read for the requested tag. |
|||
'''{{monospace|tag(My Personal Tag)}}''' |
|||
The spelling and letter case of the <i>tag name</i> must match exactly those stored in the file. |
|||
: This will return the value from the tag named {{monospace|My Personal Tag}} from file referenced by the {{monospace|[filename]}} field. |
|||
Performance note: This function must open and read the actual file, so its performance is significantly slower than other functions which |
|||
'''{{monospace|tag(Gapless Header)}}''' |
|||
operate on database fields. |
|||
: Returns the {{monospace|Gapless Header}} tag value, often contained in an mp3 file. |
|||
|- valign="top" |
|||
'''{{monospace|tag(exif: Date)}}''' |
|||
! scope="row" style="background: #ecedf3; color: #111; border-style: solid; border-width: 0px 1px 2px 2px; border-top: 1px solid #bbb; border-right: 1px solid #bbb;" | Examples |
|||
: Returns the raw date data from the EXIF data saved inside a jpg file. |
|||
|style="background: #f9f9f9; color: #111; border-style: solid; border-width: 0px 2px 2px 0; border-top: 1px solid #bbb;" | <span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>tag(My Personal Tag)</nowiki></b></span> |
|||
}} |
|||
<p style="margin-left:20pt;">This will return the value from the tag named <span style="font-family: monospace,monospace; font-size:1em;">My Personal Tag</span> from file referenced by the <span style="font-family: monospace,monospace; font-size:1em;">[filename]</span> field.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>tag(Gapless Header)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the <span style="font-family: monospace,monospace; font-size:1em;">Gapless Header</span> tag value, often contained in an mp3 file.</p> |
|||
<span style="font-family: monospace,monospace; font-size:1em;"><b><nowiki>tag(exif: Date)</nowiki></b></span> |
|||
<p style="margin-left:20pt;">Returns the raw date data from the EXIF data saved inside a jpg file.</p> |
|||
|} |
|||
<div style="text-align:right;">([[#top|Back to top)]]</div> |
Latest revision as of 05:53, 15 December 2021
- See also: Expression Language and Function Index
The functions in this section access field values, store and load global variables, access file tags, and access note fields.
Field(…)
- Returns a field's value.
Description | Field(name, mode, filekey)
The Field() function returns the value stored in field name.
The format of return is selected by mode. If the FileKey argument is specified, the value returned will be from the file referenced by that filekey. If not specified, values are returned from the current file. Available mode values:
| ||||
---|---|---|---|---|---|
Examples | field(album)
field(date, 0)
|
FieldQuery(…)
- Return a list of matches based on a list of fields to search, from a selected scope of files.
Description | FieldQuery(fieldlist, valuelist, return, mode, scope)
The FieldQuery() function returns a list of matches based on a list of fields to search, from a selected scope of files..
Important Notes
| ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Examples | FieldQuery(Director,Ridley Scott,Name,1,1)
FieldQuery(Actors,Al Pacino,Name,0,0)
FieldQuery(Director;Actors, Sean Penn;Nicole Kidman, Name, 1, 0)
|
ItemCount(…)
- Counts the number of files that have the exact same value of the given expression as the file the expression runs in the context of.
Description | ItemCount(field)
The ItemCount() function counts the number of files that have the exact same value of the given expression as the file the expression runs in the context of. field is the library field name, or names, with control characters escaped, for which a count is desired. Notes:
The Interact forum has a useful thread that discusses the above notes in more detail. |
---|---|
Examples | ItemCount(/[Artist/])
ItemCount(/[Artist/]/[Genre/])
|
Load(…)
- Outputs the value of a global variable.
Description | Load(varname)
Loads and outputs the value of the specified global variable varname that has been previously stored with Save(). |
---|---|
Examples | load(var1)
save(math(1 + 2), sum)load(sum)
|
Note(…)
- Retrieve note fields.
Description | Note(field label, field type, occurrence)
The Note() function retrieves information from a Media Center Note. Specifically, it returns the contents associated with a field label, of a given field type. The Nth occurrence may be requested. Notes data may be simple text, or associated with defined a field label. Currently the only type of field label is contact information. The first line of a Note is associated with the omnipresent field label Name. The field type selects the specific sub-type for a given field label, and occurrence selects which instance of several field label / field type pairs is returned. The occurrence value is zero-based. |
---|---|
Examples | note(phone)
note(phone, home)
note(phone, home)
note(phone, home, 1))
|
Save(…)
- Saves a value to a global variable.
Description | Save(value, variable, mode)
This Save() function saves the value into the specified global variable, and optionally will return that value if mode is set. Once a global variable has been created using Save(), that variable's value is available for use with either Load() or the pseudo-field "[variable]". Available mode values:
| ||||
---|---|---|---|---|---|
Examples | save(Much Money, local_bank)
save(More Money, My Bank, 1)
save(math([duration,0] / 60), durmins)if(compare([durmins], >, 5.0), Long Track, Short Track)
Additional Examples |
SaveAdd(…)
- Adds to a global variable.
Description | SaveAdd(variable, value, mode)
The SaveAdd() function adds value to a global variable either numerically or as a list item. The mode argument indicates how variable is modified. Available mode values:
| ||||||
---|---|---|---|---|---|---|---|
Examples | saveadd(v, 1)
saveadd(v, math(2 - 6))
save(foo, v)saveadd(v, bar, 1)load(v)
save(That, v)saveadd(v, This, 2)load(v)
|
SetField(…)
- Sets a field's value.
Description | SetField(name, value)
The SetField() function sets the value of name to value. |
---|---|
Examples | setfield(album, Living in the Past)
|
Tag(…)
- Returns a file's physical tag.
Description | Tag(tag name)
The Tag() function reads and returns the value of tag name directly from a file. The Media Center Library database is not used with Tag(), and instead the specified file is read for the requested tag. The spelling and letter case of the tag name must match exactly those stored in the file. Performance note: This function must open and read the actual file, so its performance is significantly slower than other functions which operate on database fields. |
---|---|
Examples | tag(My Personal Tag)
tag(Gapless Header)
tag(exif: Date)
|