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

From AniDB
Jump to navigation Jump to search
(wiki markup)
No edit summary
Line 25: Line 25:
'''Default tags'''<br />
'''Default tags'''<br />
{|
{|
|?a||Anime name
|?a||text||Anime name
|-
|-
|?ab||Audio bitrate
|?ab||number||Audio bitrate
|-
|-
|?ac||Audio codec
|?ac||text||Audio codec
|-
|-
|?aid||Anime ID
|?aid||number||Anime ID
|-
|-
|?e||Episode name
|?e||text||Episode name
|-
|-
|?eid||Episode ID
|?eid||number||Episode ID
|-
|-
|?ep||Episode number
|?ep||number||Episode number
|-
|-
|?ep2, ?ep3, ?ep4||Zero padded episode number, eg ?ep3 = 007
|?ep2, ?ep3, ?ep4||text||Zero padded episode number, eg ?ep3 = 007
|-
|-
|?fid||File ID
|?fid||number||File ID
|-
|-
|?fs||File source
|?fs||text||File source
|-
|-
|?g||Group name, long (?lg) if available, otherwise short (?sg)
|?g||text||Group name, long (?lg) if available, otherwise short (?sg)
|-
|-
|?gid||Group ID
|?gid||number||Group ID
|-
|-
|?lang||Shows 1-2 Audio and 1-2 Subtitle languages
|?isMovie||boolean||True if the current file belongs to a movie anime
|-
|-
|?la||Shows all audio languages
|?lang||text||Shows 1-2 Audio and 1-2 Subtitle languages
|-
|-
|?la1, ?la2, ?la3, ?la4||Shows 1-4 audio languages
|?la||text||Shows all audio languages
|-
|-
|?lg||Long group name
|?la1, ?la2, ?la3, ?la4||text||Shows 1-4 audio languages
|-
|-
|?ls||Shows all subtitle languages
|?lg||text||Long group name
|-
|-
|?ls1, ?ls2, ?ls3, ?ls4||Shows 1-4 subtitle languages
|?ls||text||Shows all subtitle languages
|-
|-
|?mid||Mylist ID
|?ls1, ?ls2, ?ls3, ?ls4||text||Shows 1-4 subtitle languages
|-
|-
|?sg||Short group name
|?mid||number||Mylist ID
|-
|-
|?v||File version
|?sg||text||Short group name
|-
|-
|?vb||Video bitrate
|?v||number||File version
|-
|-
|?vc||Video codec
|?vb||number||Video bitrate
|-
|?vc||text||Video 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).
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).
Line 80: Line 82:
|-
|-
|?uc()||Converts the supplied parameter to upper case.<br />Example ?uc(crc)
|?uc()||Converts the supplied parameter to upper case.<br />Example ?uc(crc)
|}
'''Comparison operators'''<br />
{|
|A=B||true if A equals B
|-
|A<>B||true if A does not equal B
|-
|A<B||true if A is smaller than B
|-
|A>B||true if A is larger than B
|-
|A and B||true if both A and B are true
|-
|A or B||true if either A or B is true
|-
|not A||true if A is false
|}
|}

Revision as of 19:09, 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

?a text Anime name
?ab number Audio bitrate
?ac text Audio codec
?aid number Anime ID
?e text Episode name
?eid number Episode ID
?ep number Episode number
?ep2, ?ep3, ?ep4 text Zero padded episode number, eg ?ep3 = 007
?fid number File ID
?fs text File source
?g text Group name, long (?lg) if available, otherwise short (?sg)
?gid number Group ID
?isMovie boolean True if the current file belongs to a movie anime
?lang text Shows 1-2 Audio and 1-2 Subtitle languages
?la text Shows all audio languages
?la1, ?la2, ?la3, ?la4 text Shows 1-4 audio languages
?lg text Long group name
?ls text Shows all subtitle languages
?ls1, ?ls2, ?ls3, ?ls4 text Shows 1-4 subtitle languages
?mid number Mylist ID
?sg text Short group name
?v number File version
?vb number Video bitrate
?vc text Video 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)

Comparison operators

A=B true if A equals B
A<>B true if A does not equal B
A<B true if A is smaller than B
A>B true if A is larger than B
A and B true if both A and B are true
A or B true if either A or B is true
not A true if A is false