For Movies I Use
I use this mask to rename movies in current folder (in plex structure) without moving them.
Code: Select all
{folder}/{n.colon(' - ').replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y}){folder.name.upper()+'/'+f.name.upper() =~/3D/?' [3D]':''}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}
I use this mask to rename movies and create movie folder in current parent folder structure (in plex structure but fix movie folder to match movie).
Code: Select all
{folder.dir}/{n.replaceAll(/^\s*(?:The|An|A)\s+/).replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y}){folder.name.upper()+'/'+f.name.upper() =~/3D/?' [3D]':''}\{n.colon(' - ').replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y}){folder.name.upper()+'/'+f.name.upper() =~/3D/?' [3D]':''}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}
I use this mask to rename and move movies after i downloaded them to move them to cleaned folders. You can just change the folder and drive upfront as needed.
Code: Select all
D:\BitTorrent\Renamed_Cleaned\Movies {folder.name.upper()+'/'+f.name.upper() =~/3D/?' 3D':''}\{n.replaceAll(/^\s*(?:The|An|A)\s+/).replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y}){folder.name.upper()+'/'+f.name.upper() =~/3D/?' [3D]':''}\{n.colon(' - ').replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y}){folder.name.upper()+'/'+f.name.upper() =~/3D/?' [3D]':''}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}
In time you will move away from the simple {plex}, so you might as well take the plunge now.
For TV Series I Use
Code: Select all
{folder}/{n.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} - {s00e00} - {t.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}
Code: Select all
{folder.dir}/{n.replaceAll(/^\s*(?:The|An|A)\s+/).replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y})\Season {s.pad(2)}\{n.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} - {s00e00} - {t.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}
Code: Select all
D:\BitTorrent\Renamed_Cleaned\Tv Series\{n.replaceAll(/^\s*(?:The|An|A)\s+/).replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} ({Y})\Season {s.pad(2)}\{n.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')} - {s00e00} - {t.replaceAll(':',' - ').replaceAll(/\u0022/, '\'').replaceAll(/[:|]/, '.').replaceAll(/\p{InCombiningDiacriticalMarks}+/, '').replaceAll(/\u2013/,' - ').replaceAll(/\?/,'')}{'.Pt'+pi}{'.['+vf}{'.'+hd}{'.'+bitdepth+'bit'}{'.'+vc}{'.'+any{source.lower().upperInitial()}{'None'}+']'}{'.['+channels}{'.'+ac+']'}{f.name.upper() =~/RIFFTRAX/? '.'+any{audioLanguages+'Rifftrax'}{'[Unknown, Rifftrax]'}:'.'+any{audioLanguages}{'[Unknown]'}{audioLanguages}}{audioLanguages.size() > 1 ? '.[Multi Audio-'+audiolanguages.size()+']' : null}{subt}