AniDB O'Matic - Documentation: Local file renaming: Difference between revisions

From AniDB
Jump to navigation Jump to search
(New page: {{TOCright}} Category:AniDB O'Matic ==File renaming patterns== AoM contains a comprehensive number of patterns to fully customize file names and paths. In order for the pattern to all...)
 
No edit summary
Line 19: Line 19:


With this you could simplify the group rule, for example you could write it:
With this you could simplify the group rule, for example you could write it:
* Using ?if: "?if(lg<><nowiki>''</nowiki>, '['+lg+']', <nowiki>''</nowiki>)" -> "%G"
* Using ?if: "?if(lg<><nowiki>''</nowiki>, '['+lg+']', <nowiki>''</nowiki>)" -> "?G"
* Simplest form: "[?lg]" -> "%G"
* Simplest form: "[?lg]" -> "?G"
* More advanced example: "?if(lg<><nowiki>''</nowiki>, '['+lg']', if(sg<><nowiki>''</nowiki>, '['+sg']', '[RAW]'))" -> "%G"
* More advanced example: "?if(lg<><nowiki>''</nowiki>, '['+lg']', if(sg<><nowiki>''</nowiki>, '['+sg']', '[RAW]'))" -> "?G"
 
'''Default tags'''<br />
<table>
<tr><td>?a</td><td>Anime name</td></tr>
<tr><td>?ab</td><td>Audio bitrate</td></tr>
<tr><td>?ac</td><td>Audio codec</td></tr>
<tr><td>?aid</td><td>Anime ID</td></tr>
<tr><td>?e</td><td>Episode name</td></tr>
<tr><td>?eid</td><td>Episode ID</td></tr>
<tr><td>?ep</td><td>Episode number</td></tr>
<tr><td>?ep2, ?ep3, ?ep4</td><td>Zero padded episode number, eg ?ep3 = 007</td></tr>
<tr><td>?fid</td><td>File ID</td></tr>
<tr><td>?fs</td><td>File source</td></tr>
<tr><td>?g</td><td>Group name, long (?lg) if available, otherwise short (?sg)</td></tr>
<tr><td>?gid</td><td>Group ID</td></tr>
<tr><td>?lang</td><td>Shows 1-2 Audio and 1-2 Subtitle languages</td></tr>
<tr><td>?la</td><td>Shows all audio languages</td></tr>
<tr><td>?la1, ?la2, ?la3, ?la4</td><td>Shows 1-4 audio languages</td></tr>
<tr><td>?lg</td><td>Long group name</td></tr>
<tr><td>?ls</td><td>Shows all subtitle languages</td></tr>
<tr><td>?ls1, ?ls2, ?ls3, ?ls4</td><td>Shows 1-4 subtitle languages</td></tr>
<tr><td>?mid</td><td>Mylist ID</td></tr>
<tr><td>?sg</td><td>Short group name</td></tr>
<tr><td>?v</td><td>File version</td></tr>
<tr><td>?vb</td><td>Video bitrate</td></tr>
<tr><td>?vc</td><td>Video codec</td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
Note that all tags are greedy, that means that ?ep2 will always be read as ep2, never as ?e or ?ep. If you need a tag to not be greedy you can use ?out(ep).
 
'''Function tags'''<br />
<table>
<tr><td>?if()</td><td>If statement.<br /> Example: ?if(a=b, 'equal', 'not equal')</td></tr>
<tr><td>?lc()</td><td>Converts the supplied parameter to lower case.<br />Example ?lc(crc)</td></tr>
<tr><td>?uc()</td><td>Converts the supplied parameter to upper case.<br />Example ?uc(crc)</td></tr>
</table>

Revision as of 12:11, 28 August 2007

File renaming patterns

AoM contains a comprehensive number of patterns to fully customize file names and paths. In order for the pattern to allow very complex rules it essentially allows light scripting. The path can be a complete path or a partial path, in case of a partial path the current file manager is used to place the file based on a known root or from the root folder of the file manager, see file managers below for more details. File extensions are automatically added to the end of the pattern.

Here's a few sample patterns:

  • "?a - ?ep - ?e [?g]" ->
    "Anime - 02 - Episode name [Group name]"
  • "?a - ?epv?v - ?e?if(lg<>'', ' ['+lg+']', '')" ->
    With group: "Anime - 02v1 - Episode name [Group name]"
    Without group:"Anime - 02v1 - Episode name"
  • "?if(wltw, 'To watch\', '')?a?if(isMovie, if(moviePartCount>1, ' - Part '+partno+if(v>1, 'v'+v, ''), if(v>1, ' - v'+v, '')), ep+if(v>1, v, '')+'- ?e') ?if(lg<>'', lg+' ', ''){?crc32}" ->
    For a movie: "Anime name - v2 [Group name]{crc32}"
    For a movie with 2 parts: "Anime name - Part 2v2 [Group name]{crc32}
    For a normal anime, marked as "to watch in wishlist": "To watch\Anime name - 02v2 - Episode name [Group name]{crc32}

Custom tags
AOM still supports custom tags to simplify rules. Custom tags works as follows:

  • Specified like a normal tag but in all uppercase, for example "?G".
  • If any subpart of the tag is empty, the whole tag is skipped, except:
  • If the tag contains ?if statements, these are not checked if they're empty.

With this you could simplify the group rule, for example you could write it:

  • Using ?if: "?if(lg<>'', '['+lg+']', '')" -> "?G"
  • Simplest form: "[?lg]" -> "?G"
  • More advanced example: "?if(lg<>'', '['+lg']', if(sg<>'', '['+sg']', '[RAW]'))" -> "?G"

Default tags

?aAnime name
?abAudio bitrate
?acAudio codec
?aidAnime ID
?eEpisode name
?eidEpisode ID
?epEpisode number
?ep2, ?ep3, ?ep4Zero padded episode number, eg ?ep3 = 007
?fidFile ID
?fsFile source
?gGroup name, long (?lg) if available, otherwise short (?sg)
?gidGroup ID
?langShows 1-2 Audio and 1-2 Subtitle languages
?laShows all audio languages
?la1, ?la2, ?la3, ?la4Shows 1-4 audio languages
?lgLong group name
?lsShows all subtitle languages
?ls1, ?ls2, ?ls3, ?ls4Shows 1-4 subtitle languages
?midMylist ID
?sgShort group name
?vFile version
?vbVideo bitrate
?vcVideo codec

Note that all tags are greedy, that means that ?ep2 will always be read as ep2, never as ?e or ?ep. If you need a tag to not be greedy you can use ?out(ep).

Function tags

?if()If statement.
Example: ?if(a=b, 'equal', 'not equal')
?lc()Converts the supplied parameter to lower case.
Example ?lc(crc)
?uc()Converts the supplied parameter to upper case.
Example ?uc(crc)