Autoplaylist: Sortierung

Begonnen von Johnny, 18. Juni 2007, 12:41:44

Vorheriges Thema - Nächstes Thema

Johnny

Moin,
wenn neue Dateien der Library hinzugefügt werden, läuft automatisch ein Skript ab das die Dateien mit einem Tag Field namens ADDED und dem aktuellem Systemdatum stempelt. Dann lasse ich mir mit der Autoplaylist die neuesten mp3s der letzten 10 Tage in einer separaten Playlist automatisch anzeigen. Aktuell ist die gesamte Sammlung in der Liste, weil ich gestern erst alle Dateien mit dem Tag versehen haben-soweit so gut.

Das Problem ist jetzt die Sortierung der Playlist. Ich benutze folgenden Code:

$sub(99999999,%added%) $ifequal(%album artist%,Various Artists,%album% %track%,%artist% %album% %track%)

Zuerst wird chronologisch nach dem Ad- Datum sortiert. :top:
Dann sollen mp3s die zu einem Sampler gehören, anders sortiert werden, als Tracks die zu normalen Alben gehören. Alle meine Sampler mp3s sind mit einem Tag "Album Artist" und dem Wert "Various Artists" versehen.  :top:

Das Problem ist jetzt das Standard Tracks nicht alphabetisch nach dem Artist sortiert werden, sondern nach dem Album Namen. Ich verstehe leider nicht warum?

Standard Tracks Sortierung= ADDED/Artist/Album/Track
Sampler Tracks        "          =ADDED/Album/Track



Gruss Johnny

Frank Bicking

$ifequal vergleicht numerische Werte, keine Zeichenfolgen.

Beispiel: $ifequal(a,b,1,0) gibt 1 zurück, da a und b den Zahlenwert Null haben.

Du benötigst $strcmp:

$if($strcmp(%album artist%,Various Artists),%album% %track%,%artist% %album% %track%)

Johnny

Danke Frank- funktioniert :top:

Mittlerweile hab ich den Code in $if($meta_test(album artist),%album% %track%,%artist% %album% %track%) geändert, damit die Funktion etwas allgemeiner ist. Ein paar Sampler sind doch etwas spezieller, jetzt wird einfach nur überprüft ob der Tag ALBUM ARTIST vorhanden ist.

Gruss Johnny

mephisto

das ist ja cool. wie machst du das denn, dass der tag beim adden geschrieben wird?
und ist es möglich auch ein timestamp wie bei last_played zu speichern und den dann auszulesen?

Johnny

#4
Zitat von: mephisto in 18. Juni 2007, 22:25:11
das ist ja cool. wie machst du das denn, dass der tag beim adden geschrieben wird?
und ist es möglich auch ein timestamp wie bei last_played zu speichern und den dann auszulesen?

Als erstes musst du das Masstagger Skript einrichten (rechtsklick/tagging/manage scripts).
Dann wird das Skrip eingerichtet:

1) ADD/Set Value/Stamp Current Date and Time -> Dann den Namen des zu Speichernden Tag Felds eingeben z.B. ADDED

1*) Da ich nur das datum und nicht die Uhrzeit gespeichert haben, möchte habe ich noch ein weitere Funktion hinzugefügt:
ADD/Set Value/Format Value from other fields -> Feldname ADDED eingeben und als Format String $cut(%ADDED%,10) .
Jetzt steht im Tag nur noch 2007-06-19. Mit der $replace funktion könntest du jetzt noch die Bindestriche entfernen z.B $replace(%added%,-,) ->20070619

2) Das ganze Speichern unter z.B ADDED

3)Fenster schliessen

4)File/Preferences/Tools/New File Tagger
Häckchen bei "Process files added to the library" setzen und dann Taggign/Scripts/ADDED auswählen.

Wenn du jetzt neue Dateien hinzufügst läuft das Skript automatisch ab und alle Tracks werden mit einem neuem Tag plus Systemdatum versehen.
Bezüglich last_played: wenn du foo_playcount benutzt kannst du unter Menü/advanced/tools/playback statistics/automatically synchronize...  ein Häckchen setzen. Dann wird die Zeit automatisch in den Tag geschrieben, ansonsten nur in einer Bibliothek gespeichert.


Gruss Johnny

mephisto

#5
Zitat von: Johnny in 19. Juni 2007, 15:04:47
Bezüglich last_played: wenn du foo_playcount benutzt kannst du unter Menü/advanced/tools/playback statistics/automatically synchronize...  ein Häckchen setzen. Dann wird die Zeit automatisch in den Tag geschrieben, ansonsten nur in einer Bibliothek gespeichert.

danke für die anleitung. werde ich gleich mal ausprobieren :)
wegen dem last_played. ich würde gerne statt des datums bei ADDED gerne einen timestamp haben, damit es einheitlich ist mit last_played. der muss dann natürlich auch wieder ausgelesen und umgewandelt werden können :)
aber eigentlich es es ja auch egal wie er es speichert. war halt nur so'ne idee

*edit
Zitat von: Johnny in 19. Juni 2007, 15:04:47
1) ADD/Set Value/Stamp Current Date and Time -> Dann den Namen des zu Speichernden Tag Felds eingeben z.B. ADDED

wollte das jetzt mal ausprobieren. aber irgendwie finde ich den eintrag Stamp Current Date and Time nicht. wenn ich ADD->set value nehme, kann ich ein field name eingeben, soll ja ADDED sein und dann halt nur field value...???
brauche ich für die einstellung vielleicht ein plugin?

habe es dann mal mit add->set value und beim wert mit %cwb_systemdatetime% versucht. doch da schreibt er wirklich nur %cwb_systemdatetime% in den tag ;) also keine zeit oder so (hook plugin ist installiert)

*edit 2
nun habe ich das mit dem eintrag Stamp Current Date and Time doch hinbekommen. musste nur mal meine uralte version von foo_cwb_hooks aktuallisieren :)