AniDB O'Matic - Documentation: Local file renaming

From AniDB
Revision as of 08:15, 4 September 2007 by PetriW (talk | contribs)
Jump to navigation Jump to search

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
?ar number Average review score
?atv number Average temp vote
?av number Average vote
?e text Episode name
?eid number Episode ID
?ep number Episode number, zero padded to match the total number of episodes
?ep2, ?ep3, ?ep4 text Zero padded episode number, eg ?ep3 = 007
?epc number Total number of episodes in the current category (for example: 24 for normal episodes, 7 for specials, 2 for op, etc)
?epp number Movie part number ep1 = 1, ep2 = 1, ep3 = 2, ep4 = 1 etc.
?epps number Total number of movie parts ep1 = 1, ep2 = 2, ep4 = 3
?eps number Total number of episodes
?fid number File ID
?fs text File source
?g text Group name, long (?lg) if available, otherwise short (?sg)
?gid number Group ID
?isKnown boolean True if the file is known to AniDB
?isMovie boolean True if the current file belongs to a movie anime
?isSpecial boolean True if the current file belongs to a special episode (Such as Op or Ed)
?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
?seps number Total number of special episodes
?sg text Short group name
?v number File version
?vb number Video bitrate
?y text Release year of anime
?ye text End year of anime
?ym text Release year and month of anime
?yme text End release year and month of anime

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)
?out() Returns the specified variable.
Example ?out(crc)
?sc() Converts the supplied parameter to sentence case.
Example ?sc(a)
?set() Declares a new tag with the specified value, same as custom tags internally.
Example ?set(temp, 'text')
?tc() Converts the supplied parameter to title case.
Example ?tc(a)
?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 less than B
A>B true if A is more than B
A<=B true if A is less or equal to B
A>=B true if A is more or equal to 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

File managers

File managers are used to automatically manage file renaming / removing and adding / updating files in your mylist.

Source paths
Each file manager can have multiple source folders. File managers can be set to search these folders recursively or only the folder itself for files. While it's possible adding a source path to multiple file managers is strongly discouraged.

Rename pattern
Each file manager can have 1 renaming pattern. To use multiple patterns you need to specify multiple patterns. The rename pattern can contain a part of a path or a full path to indicate where the file should be stored. The path part of a rename might be ignored under certain circumstances however, see below.

Target paths
A file manager can have one or more target paths for moving files. If no target path is specified the folder the file was found in will be used instead. If there are multiple target paths the file manager will try to figure out where the file has the most related files. This is determined by a) the anime the file belongs to and b) the anime group the file belongs to. If there's not enough space available on the target drive it'll check the next preferred target if there's enough space and so on. If no space is available in any target path the file will be renamed in it's current location, but with any path part of the file removed, aka the filename part of the rename pattern will be used but the file will remain in the folder it was found in.

Only move known files
This will make the file manager ignore files which are not in AniDB, they'll be visible on the known files page, but they will never be moved or renamed.

Automatically remove deleted files
This will make the file manager remove files it can't find anymore from the known files page. This rule ignores files stored on removable media.

Don't remove files if the volume can't be found
This will prevent the file manager from removing files it can't find when the whole volume is gone, this rule would for example prevent your known files from being cleared if your network cable is unplugged or a hdd is disconnected.

Add new files to AniDB
This will make the file manager automatically add found files to your mylist.

Automatically update the storage field of mylist entries
This will make the file manager automatically update the storage field of mylist entries based on the volume it's stored on. This field currently only works for files on a removable storage such as a DVD. The label used will be the label of the removable media, eg. DVD #013.

Automatically mark found files as OnHDD or OnRemovable in mylist
This will make the file manager update your mylist to OnHDD if the file was found on a HDD or Network drive, or OnRemovable if the file is on a CD/DVD.

Automatically mark removed files as Deleted in mylist
This will make the file manager update your mylist to indicate the file has been deleted if removed by the above rule.