Danos Exportscript Albumliste: Skriptänderungen

Hi,
ich benutze danos Exportskript für eine Albumliste und habe sie soweit mein Verständnis reichte mit Hilfe einiger anderer Threads auf meine Bedürfnisse geringfügig abgeändert. (mehr Gestaltungsänderungen als Codeänderungen)

Für mein vollständiges Glück fehlt mir noch ein Feature, das mein Skriptvermögen übersteigt und von dem ich auch nicht weiß, ob es möglich ist.

Ich habe teilweise doppelte Alben, die sich aber in verschiedenen Ordnern befinden und auch nicht identisch sind, weil es sich um MP3s mit unterschiedlicher Bitrate und in Teilbereichen anderen Tags handelt. Ich möchte beide Ordner behalten und in meiner Albenliste aufführen und ich möchte auch den Tag "Album" und den Albumordner nicht umbenennen. Die Tracks kommen sich auf meinen Speichermedien nicht ins Gehege.

Bei einer Auflistung nach dem nachfolgenden Code landen natürlich daher alle Tracks unter dem gleichen Albumnnamen, wobei dann die Auflistung wie folgt aussieht:

Albumartist A
Album A
01 - Artist - Track1
01 - Artist - Track1
02 - Artist - Track2
02 - Artist - Track2
usw.

Diese Fälle würde ich gerne in der Weise abfangen, indem ich nur in der Auflistung das 2. oder 3. Album, das mit dem 1. identisch im Namen ist, mit einem Zusatz (meinetwegen "(2)") versehe. Es müsste im Code also eine Abfrage nach doppelt vorhandenen Albennamen des gleichen Albumartist eingebaut und die betreffenden Tracks separat gelistet werden.

Gemäß dem o.a. Beispiel sollte also die Auflistung in der Albumliste wie folgt gruppiert sein:

Albumartist A
Album A
01 - Artist - Track1
02 - Artist - Track2

Album A (2)
01 - Artist - Track1
02 - Artist - Track2

Geht das und wenn ja, wie?

$loop($if2(%albumartist%,%artist%))
  <!-- ARTIST START -->
  <table width="100%%" border=0>
    <tr>
    <td class="row2" align="center" width="3%%"><a >$num(%_counter%,3)</a></td>
    <td id="id$replace($if2(%albumartist%,%artist%),'',,\,,",)" class="row2" width="43%%">
      <b><a href="java script:show(''$replace($if2(%albumartist%,%artist%),'',,\,,",)_'');">$if2(%albumartist%,$if2(%artist%,.unknown.))</a></b></td>
    <td class="row2" align="right" width="32%%">$loop(%album%,1)$loopend() %_max_counter% Album(s) %_total_size% | $num(%_total_files%,2) Track(s) | %_total_time% Std. </td>
    <td class="row2" align="center" width="4%%"></td>
    <td class="row2" align="center" width="18%%">%genre%</td>
    </tr>
  </table>

  <table style="display:none;" id="show$replace($if2(%albumartist%,%artist%),'',,\,,",)_" width="100%%">
    $loop(%album%)
    <!-- ALBUM START -->
    <tr>
    <td class="row4" align="center" width="3%%"><a >-$num(%_counter%,2)</a></td>
    <td id="id$replace($if2(%albumartist%,%artist%)%album%,'',,\,,",)" class="row4" width="43%%">
      <b><a href="java script:show(''$replace($if2(%albumartist%,%artist%)%album%,'',,\,,",)'');">$if2(%album%,_Album unbekannt)</a></b></td>
    <td class="row4" align="right" width="32%%">%_total_size% | $num(%_total_files%,2) Track(s) | %_total_time% Std. </td>
    <td class="row4" align="center" width="4%%">%year%</td>
    <td class="row4" align="center" width="18%%">%genre%</td>
    </tr>

    <tr style="display:none;" id="show$replace($if2(%albumartist%,%artist%)%album%,'',,\,,",)">
    <td class="row3"></td>
    <td class="row3">$loop(%discnumber%$num(%track%,3))$num(%track%,2) - %artist% - $if2(%title%,%_path%)

$loopend()

    <td class="row3" align="right">$loop(%discnumber%$num(%track%,3))%_file_size% | [%_bitrate%kbps %_vbr%] | %_length% min | Lyrics: $if($eql(%unsyncedlyrics%,),--,+) | Cover: $num(%_covers%,1) 

$loopend()

    <td class="row3" align="center"></td>
    <td class="row3" align="center">%_total_size%

%_total_files% Track(s)

    </tr>
    $loopend()
  </table>
$loopend()

Ich habe das Mp3tag Export Skript erst einmal vom HTML code befreit, um es leichter verstehen zu können.
Innerhalb des Albums ist ein loop(%_folderpath%) erforderlich, um die Ordner zu separieren.
Sorry, aber mehr kommt jetzt nicht mehr ... brauche etwas Schlaf.

DD.20130110.2208.CET

Warum ein loop(%_folderpath%)?
Der vorhandene loop-Aufbau bezieht sich ja nur auf Tags und nicht auf eine vorhandene Ordnerstruktur.

Hallo Poster, wie du sagst unterscheiden sich die Tag-Felder ALBUM in den Dateien der betreffenden "doppelten Ordner" nicht, dadurch entsteht durch das angewendete Export-Skript die folgende Liste.

Wenn du eine getrennte Aufstellung je Album Entität wünschst, wo kannst du ein Kriterium finden, das diese Unterscheidung möglich macht, damit die folgende Liste entsteht?

Wenn man die betreffenden Alben und die Dateien, deren Tag-Feld Inhalte identisch sind, abgesehen von der technischen Bitrate, unterschiedlich behandeln will, dann muss man irgendwo Merkmale finden, um die Alben schließlich doch separat behandeln zu können.

Ganz einfach wäre es, weil die Änderung des Export-Skripts dann nicht erforderlich ist, wenn die Alben unterschiedliche Album-Namen hätten, wie z. B. Album A, Album A (2). Aber diese Änderung willst du ja nicht tun.

Der %_md5audio% MD5-Hash des Audio-Teils von zwei gleichnamigen Dateien mit unterschiedlciher Bitrate wäre unterschiedlich. Ob man damit schnell und einfach zu einer Unterscheidung der Alben kommt, vermutlich nicht.

Also kann man den Wert aus %_folderpath% nehmen, um die Alben zu unterscheiden durch ihre verschiedenen Ordner.

Oder du legst in den Dateien der betreffenden Alben ein besonderes Tag-Feld an, das die Unterscheidung zwischen den Alben möglich macht.
$loop(%ALBUM%)
$loop(%AlbumSibling%)
...
$loopend()
$loopend()

DD.20130112.1730.CET