Ich habe eine penible Ordnerstruktur nach dem Muster X:\[...]\<!--coloro:#8B0000--><span style="color:#8B0000"><!--/coloro-->ARTIST<!--colorc--></span><!--/colorc-->\<!--coloro:#008000--><span style="color:#008000"><!--/coloro-->ALBUM<!--colorc--></span><!--/colorc-->(\<!--coloro:#0000FF--><span style="color:#0000FF"><!--/coloro-->CD xx<!--colorc--></span><!--/colorc-->).
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Der/Die Ordner "<!--coloro:#0000FF--><span style="color:#0000FF"><!--/coloro-->CD xx<!--colorc--></span><!--/colorc-->" existieren natürlich nur, wenn das Album mehrere CDs hat.)</b><!--sizec--></span><!--/sizec-->
"Daraus lassen sich doch Aktionen bauen, die mir das Leben in Mp3tag leichter machen.", dachte ich und so sieht das Ergebnis also aus:
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Was es (bisher) kann:<!--sizec--></span><!--/sizec-->
<ul><li><!--coloro:#8B0000--><span style="color:#8B0000"><!--/coloro-->ALBUMARTIST<!--colorc--></span><!--/colorc-->-tag füllen</li><li><!--coloro:#008000--><span style="color:#008000"><!--/coloro-->ALBUM<!--colorc--></span><!--/colorc-->-tag füllen</li><li><!--coloro:#0000FF--><span style="color:#0000FF"><!--/coloro-->DISCNUMBER<!--colorc--></span><!--/colorc-->-tag füllen (wenn es mehrere CDs gibt)</li><li><!--coloro:#8B0000--><span style="color:#8B0000"><!--/coloro-->ARTIST<!--colorc--></span><!--/colorc-->\<!--coloro:#008000--><span style="color:#008000"><!--/coloro-->ALBUM<!--colorc--></span><!--/colorc-->(\<!--coloro:#0000FF--><span style="color:#0000FF"><!--/coloro-->CD xx<!--colorc--></span><!--/colorc-->) werden automatisch erkannt, egal ob "CD xx" vorhanden ist, oder nicht.
Weiterhin funktioniert das taggen auch, wenn du dich in <!--coloro:#8B0000--><span style="color:#8B0000"><!--/coloro-->ARTIST<!--colorc--></span><!--/colorc-->\<!--coloro:#008000--><span style="color:#008000"><!--/coloro-->ALBUM<!--colorc--></span><!--/colorc--> befindest. Die CD's werden trotzdem korrekt zugeordnet. Da <!--coloro:#008000--><span style="color:#008000"><!--/coloro-->ALBUM<!--colorc--></span><!--/colorc-->, <!--coloro:#FF0000--><span style="color:#FF0000"><!--/coloro-->ALBUMARTIST <!--colorc--></span><!--/colorc-->und evtl. <!--coloro:#0000FF--><span style="color:#0000FF"><!--/coloro-->DISCNUMBER <!--colorc--></span><!--/colorc-->aus dem Pfad jeder Datei gelesen werden, könntest du damit theoretisch deine ganze Sammlung mit einem Mal taggen. (Die richtige und saubere Ordnerstruktur natürlich vorausgesetzt.)</li></ul>
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Wie es das macht:<!--sizec--></span><!--/sizec-->
Wer sich nicht für die Details der einzelnen Scripte interessiert, kann das hier überspringen.
Die Aktionsgruppen repräsentieren Teilaufgaben; die Programmierer unter euch stellen
sich die Gesamtheit der Aktionsgruppen am besten als Klasse vor:
Constructor:
- iq6t9_01prepare
Methoden:
- iq6t9_02getAlbum
- iq6t9_03getAlbumArtist
- iq6t9_04getDiscnumber
- iq6t9_05standard conversions
Destructor:
- iq6t9_06dispose
<ul><li><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->iq6t9_01prepare<!--sizec--></span><!--/sizec-->
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Bereitet getAlbumArtist,getAlbum,getDiscNumber vor; hat den Vorteil, dass
das hier nur so oft wie nötig abgearbeitet wird - nämlich genau 1 mal am Anfang!)</b><!--sizec--></span><!--/sizec-->
Action #1:
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(%_folderpath%-Wert (ála X:\artis\album; ohne Dateinamen!)
in MY_FOLDERPATH speichern.)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder formatieren<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>MY_FOLDERPATH</b>
<i>Formatstring:</i> <b>%_folderpath%</b></blockquote>
Action #2:
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(MY_FOLDERPATH zum Metadatenfeld erweitern; durch split
des %_folderpath% bei "\".)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder aufteilen<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>MY_FOLDERPATH</b>
<i>Trennzeichen:</i> <b>\</b></blockquote></li></ul>
<ul><li><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->iq6t9_02getAlbum<!--sizec--></span><!--/sizec-->
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Album ermitteln und speichern. Die Schwierigkeit hier ist, dass
ein möglicher, weiterer Ordner "CD xx" vorhanden sein kann.
Das wird hier mit geprüft.)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder formatieren<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>ALBUM</b>
<i>Formatstring:</i>
$if($eql($left($meta(MY_FOLDERPATH,$folderdepth(%_folderpath%)),2),CD),
$meta(MY_FOLDERPATH,$sub($folderdepth(%_folderpath%),1)),
$meta(MY_FOLDERPATH,$folderdepth(%_folderpath%)))</blockquote></li></ul>
<ul><li><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->iq6t9_03getAlbumArtist<!--sizec--></span><!--/sizec-->
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(AlbumArtist ermitteln und speichern. Die Schwierigkeit hier ist, dass ein möglicher, weiterer Ordner "CD xx"
vorhanden sein kann. Das wird hier mit geprüft.)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder formatieren<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>ALBUMARTIST</b>
<i>Formatstring:</i>
$if($eql($left($meta(MY_FOLDERPATH,$folderdepth(%_folderpath%)),2),CD),
$meta(MY_FOLDERPATH,$sub($folderdepth(%_folderpath%),2)),
$meta(MY_FOLDERPATH,$sub($folderdepth(%_folderpath%),1)))</blockquote></li></ul>
<ul><li><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->iq6t9_04getDiscnumber<!--sizec--></span><!--/sizec-->
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Wenn es einen Ordner "CD xx" gibt, dann in DISCNUMBER speichern; erreicht durch simples
$right(x,2), vorausgesetzt es reichen CD01 bis CD99...)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder formatieren<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>DISCNUMBER</b>
<i>Formatstring:</i>
$if($eql($left($meta(MY_FOLDERPATH,$folderdepth(%_folderpath%)),2),CD),
$right($meta(MY_FOLDERPATH,$sub($folderdepth(%_folderpath%),0)),2),)</blockquote></li></ul>
<ul><li><!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo-->iq6t9_05standard conversions<!--sizec--></span><!--/sizec-->
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Das sind ein paar Konvertierungs-Aktionen, die ich schon
lange für die Form der TAGs und Dateinamen verwende.)</b><!--sizec--></span><!--/sizec-->
Action #1:
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>("Feat." -> "feat."; sieht einfach besser aus ~g~)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Ersetzen:<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>_ALL</b>
<i>Original:</i> <b>Feat.</b>
<i>Ersetzen durch:</i> <b>feat.</b>
<!--coloro:darkblue--><span style="color:darkblue"><!--/coloro-->[ ] Nur als Wort ersetzen
[x] Groß-/Kleinschreibung berücksichtigen<!--colorc--></span><!--/colorc--></blockquote>
Action #2:
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(TRACK immer zweistellig; 1-9 wird also zu 01-09)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder formatieren<!--colorc--></span><!--/colorc--></b>
<i>Feld:</i> <b>TRACK</b>
<i>Formatstring:</i> <b>$num(%track%,2)</b></blockquote>
Action #3:
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><b>(Kommentare löschen)</b><!--sizec--></span><!--/sizec-->
<blockquote><i>Aktionstyp:</i> <b><!--coloro:green--><span style="color:green"><!--/coloro-->Tag-Felder entfernen<!--colorc--></span><!--/colorc--></b>
<i>Folgende Tag-Felder entfernen (getrennt durch Semikolon):</i> <b>comment</b></blockquote></li></ul>
Wie es läuft:
<ul><li>Lade dir die .zip-Datei aus dem Anhang herunter und entpacke sie;
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->(mit WinRAR z.B. einfach *Rechtsklick->extract here. Ordner ist mit drin.)<!--sizec--></span><!--/sizec--></li><li>Den Inhalt des Ordners (5x .mta; 1x .mtg) kopierst du jetzt nach [%APPDATA%\Mp3tag\data\actions].
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo-->Die Dateinamen habe ich so gewählt, dass sie eindeutig sind, aber dennoch Obacht, dass du jetzt nichts überschreibst, was du noch vermissen könntest ;].<!--sizec--></span><!--/sizec--></li><li>Wenn du die Dateien umbenennen möchtest, achte später bei der Reihenfolge der Aktionsgruppen darauf, dass [iq6t9_01prepare] IMMER vor den anderen ausgeführt wird.</li></ul>
Sollte nun noch etwas unklar sein, gibt es <a href="http://www.youtube.com/watch?v=I9yxjYoDMhk" target="_blank">hier</a> ein Video mit den ersten Schritten und Beispielen zur Anwendung/Vorschau der Funktionen.
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo-->Idee? Anregung? Fehler gefunden?<!--sizec--></span><!--/sizec-->
Das ist ein Forum, oder? <img src="/uploads/default/original/1X/f15ee73c0fd9ec3b0db7481f0558638f8ee224ce.gif" width="20" height="20" alt=":huh:" title=":huh:"/> :laughing:
MfG
r.beer
P.S.
Ich bin mir nicht sicher, ob das hier in das Forum passt. Konnte es nirgends zuordnen.
Spoilertest
iq6t9_mp3tag_actions.zip (1.65 KB)

auf weitere folgen.