Funktion zur automatischen Wahl zwischen Anzeige- und Sortierfeldern

Ich verwende die Sortierfelder (%albumsort%, %artistsort%, %titlesort% etc.) bevorzugt auch in Ordner- und Dateinamen.

Für Tag - Dateiname wäre es hilfreich, wenn es eine Komfortfunktion ähnlich zu $if2() gäbe:

  • $ifsort(%artist%) = $if2(%artistsort%,%artist%) = $if(%artistsort%,%artistsort%,%artist%)

Diese Funktion könnte auch gut in Spaltendefinitionen für Sortieren nach verwendet werden.

Für Dateiname - Tag wäre es hingegen hilfreich, wenn in einem Rutsch zwei Tagfelder denselben Wert erhalten könnten. Das finde ich allerdings nicht so wichtig.

Das kannst du dir bereits heute selbst basteln, indem du die Aktion "Tag-Feld importieren" so bastelst, dass in der Zeichenkette der Quelle der auf 2 Felder zu verteilende Bestandteil schon kopiert vorliegt.

Wenn also aus _FILENAME "Queen - Bohemian Rhapsody" "Queen" sowohl in ARTIST als auch ALBUMARTIST vorkommen soll, dann würde dies zu 3 gefüllten Feldern führen:
Quelle: $regexp(%_filename%,(.*) - (.*),$1==$1==$2)
Ziel: %albumartist%==%artist%==%title%

Ich weiß nicht: ein $If2() erspart einem, die Ergebnisse zu definieren. Aber eigentlich wird doch die Feldvariable aufgelöst in einen String und wenn der mehr als keine Daten enthält, dann werden die genommen, andernfalls werden die anderen Daten genommen.
Das funktioniert auch geschachtelt mit anderen Funktionen, die erst am Ende einen String ausgeben.
Das $ifsort() soll aber nun nicht den String aus dem genannten Feld nehmen, sondern den Feldnamen analysieren wie bei $meta() und dann in einer Liste von Paaren nachsehen, um dann die Daten aus dem dort referenzierten Feld zu nehmen.
Meiner Ansicht nach müsste die Syntax geändert werden, weil sonst der Bezug zum Feldnamen verloren geht, zu $ifsort(artist).
Und dann finde ich es immer noch einen ziemlichen geistigen Überschlag, dass nun gerade nicht das genommen wird, was ich hingeschrieben habe, sondern was ganz anderes, was ggf. gar nicht da ist.
In der Hinsicht finde ich $if2() klarer: es wird klar festgelegt, was in der Wenn-Dann-Beziehung zu erwarten ist. Und es funktioniert auch mit geschachtelten Funktionen, die am Ende einen String als Ergebnis haben. Dieser Zusammenhang würde sich für die $ifsort()-Funktion auflösen, wenn ein Daten-String gefunden wird und keine Feldreferenz.

Wie wäre es denn mit zusätzlichen Pseudofeldern, die den Inhalt des Sortierfeldes liefern, wenn es nicht leer ist, und sonst den Inhalt des Anzeigefeldes? Wenn ihm ein Wert zugewiesen wird, würde der für beide Felder verwendet werden.

Gemeinsam Anzeigefeld Sortierfeld
%album-sort%, %_album%? %album% %albumsort%
%albumartist-sort%, %_albumartist%? %albumartist% %albumartistsort%
%artist-sort%, %_artist%? %artist% %artistsort%
%composer-sort%, %_composer%? %composer% %composersort%
%title-sort%, %_title%? %title% %titlesort%
%tvshow-sort%, %_tvshort%? %tvshow% %tvshowsort%