'n Haufen Vorschläge


#1

So, ein Heavy User macht mal Vorschläge :huh:

Jetzt gibt es endlich mit regulären Ausdrücken ein mächtiges Mittel zur Bearbeitung von Tags, und dann werde ich von MP3Tag dazu verdammt, diese nur innerhalb eines Tags zu verwenden. Wie wäre es, wenn ich in den regulären Ausdrücken nicht ein Feld zur Bearbeitung wählen müsste, sondern im Ausdruck definieren könntne, auf was sich der Ausdruck bezieht?
Ein Beispiel: Ich benenne Titel eines Albums mit "%n - %t", aber es gibt auch einige Dateien im Stile "09 - feat. Steven Tyler - Misery.ogg", bei denen dann ein "Featuring" noch zum Interpreten hinzu kommt, aber nur bei einigen der Dateien eines Albums. Will ich nun die Tags generieren, kann ich hier nach dem "Dateiname - Tag" mit meinem Muster "%i\%j - %a\%n - %t" noch hingehen und alle Featurings von Hand umbauen, da ja im Titel jetzt der zweite Teil des Interpreten steht.

VORSCHLAG 1:
Die simple Lösung wäre es, wenn "Dateiname - Tag" bei wiederholtem Auftreten von %i einfach konkatenieren und nicht überschreiben würde, denn dann ginge "%i\%j - %a\%n - %i - %t" für alle Featuring-Dateien.

VORSCHLAG 2:
Reguläre Ausdrücke könnten das auch und sogar, wenn man sie auf alle Dateien loslässt. Man definiert sich folgende Ausdrücke, die für das Umstellen nach dem "Dateiname - Tag" gedacht sind:

Von Feld: Titel
Nach Feld: Interpret
Modus: Anhängen
Ausdruck: (.?) - (.)
Treffer ersetzen durch: $1

Von Feld: Titel
Nach Feld: Titel
Modus: Ersetzen
Ausdruck: (.?) - (.)
Treffer ersetzen durch: $2

Diese Technik ist ein Vorschlag für den Aktionen-Requester. Mit Von-Feld und Nach-Feld legt man fest, von wo man mit regulären Ausdrücken etwas wohin transferieren möchte. Mit dem Modus (Ersetzen, Anhängen, Davorschreiben) kann man definieren, was im Zielfeld mit den gefundenen Daten passieren soll.
Wichtig ist dann noch, dass die Aktionen von oben nach unten abgearbeitet werden.

Man könnte natürlich auch eine Liste der benutzten Felder generieren und für jedes eine Selektionsausdruck. Die benennt MP3Tag dann der Übersicht halber nicht mit $1, $2..., sondern mit $a1 für den ersten Treffer im Selektionsausdruck für das Album und so weiter. Dann gibt es eine Liste mit Zielfeldern, in denen man diese verwenden kann. Im Beispiel sähe die Aktion so aus:

Quellen:
Interpret: (.)
Titel: (.
?) - (.*)

Ziele:
Interpret: $i1 $t1
Titel: $t2

Natürlich könnte man so den ganzen "Datei - Tag" "Tag - Dateiname" Kram erschlagen, denn diese Quelle-Ziel-Technik erlaubt ja auch dies (ich nehme mal d für Dateiname, das ist wohl noch frei):

Quellen:
Dateiname: (.?)(.?) - (.)(.?) - (.*)

Ziele:
Interpret: $d1
Jahr: $d2
Album: $d3
Nummer: $d4
Titel: $d5

Hierbei hoffe ich, die Gierig/Nicht gierig Sachen richtig gemacht zu haben. Muss man eigentlich auch die \ als \\ schreiben von wegen Escaper? Mit dieser Technik könnte man sich alle Vorgänge als Liste von Teilaktionen einer Aktion definieren und so alles automatisieren...

VORSCHLAG 3:
In "Dateiname - Tag" und "Tag - Dateiname" rutschen die zuletzt benutzten Muster immer nach unten , so dass man später eines mit Cursor runter wieder holen muss. Das ist aber blöd, weil man ja einige Standardmuster hat, die man dann suchen muss. Wie wäre es, wenn man irgendwo einige Standardmuster eingeben kann, die man dann mit Cursor HOCH holen kann (das wichtigste mit einmal Cursor hoch usw.)?


#2

Puh, das ist ja wirklich einiges an Vorschlägen. Ich werde mir die Sachen bei Gelegenheit mal durch den Kopf gehen lassen.

Meiner Meinung nach kannst Du aber durch einen Formatstring wie
%n - %k - %t
bei Dateiname - Tag den Featuring-Teil temporär in den Kommentar kopieren und dann mit dem Konverter Tag - Dateiname und einem Formatstring wie
%i %k - %a - %n - %t
einen Dateinamen bauen, bei dem der Interpret und der Featuring-Teil zusammen stehen.

Dann ist es ein Leichtes die Informationen richtig in den Tag zu übernehmen.

Viele Grüße,
~ Florian


#3

ROTFL

Cool, dass selbst der Programmierer die gleiche Fummelei verwendet. Das "Parken" im Kommentar-Feld ist wohl ein Klassiker. Manchmal hätte man gerne zwei bis drei Kommentarfelder...

Wenn das mit den Vorschlägen noch nicht reicht, kann ich ja noch mal richtig auf die Kacke aheuen: Wie wäre es, wenn man eine Grammatik für die Dateipfade aufstellen könnte, die MP3Tag dann für einen ganzen Dateibaum kontrolliert und anschließend alle Verletzungen auflistet, damit man die Dateipfade anpassen kann. Bei mir sind nämlich die Dateien sehr strikt sortiert:
"%i/%j - %a/%n - t" bei Alben und "%i/%t" bei Titeln, die nicht Alben zugeordnet werden können. Dazu noch die Sonderfälle mit dem Featuring (wenn im Dateinamen mehr als einmal " - " vorkommt, gilt "%n - %i(2. Teil) - %t") bzw. bei Samplern, wo für Dateinamen immer "%n - %i - %t" gilt. Wäre schön, wenn MP3Tag einem alle Alben rauswerfen könnte, die noch kein Jahr haben, oder Dateinamen mit mehr als zweimal " - " drin.

Bei mir wird deshalb so strikt sortiert, weil Kollegen das auch tun und wir eine "private Tauschbörse" mit eigenem Protokoll haben, die mehrere Dateibäume in der Darstellung vereinigt und das sähe wie Kraut und Rüben aus, wenn nicht alle identisch benennen würden. Ich bin mal gespannt, wie das Programm in großen Wohnheimnetzen funzen wird, wenn es mal richtig fertig ist. Das sieht wie ein Explorer aus, mit Baumdarstellung, nur dass die Dateien und Verzeichnisse von mehreren Quellen stammen.


#4

Hallo!

Diesen Vorschlag habe ich in den aktuellen Developer Build aufgenommen.

Viele Grüße,
~ Florian


#5

Hallo!

Ich habe im aktuellen Developer Build auch reguläre Ausdrücke für den Filter (Tastenkombination F3) implementiert, mit denen Du diese Regeln vielleicht abbilden kannst.

Viele Grüße,
~ Florian


#6

Phew, das ist hier aber konstruktiv. Das bin ich aus den dBox-Linux-Foren gar nicht gewohnt, da glänzen die Developer meist durch Abwesenheit :smiley: Den Filter hatte ich noch gar nicht entdeckt schäm. Muss ich gleich mal ausprobieren.
Beim append ist mir noch aufgefallen, dass man ja aufpassen muss, damit man ein Leerzeichen zwischen beide %i bekommt. Man muss dann wohl eins im Musterstring weglassen, um es zu verwenden, etwa "%i\%j - %a\%n -%i - %t", damit für den Dateipfad "Pink\2003 - Try This\05 - feat. Peaches - Oh my God.mp3" auch korrekt der Künster "Pink feat. Peaches" getaggt wird.