Webserver: dynamische Seiten
Der interessante Teil sind die Seiten mit dynamischem Inhalt. Ein großer Teil des Inhalts wird dabei über die URL-Parameter geregelt. Für eine Verlinkung der Seiten untereinander durch die Templates müssen die URLs mit den passenden Parametern versehen werden. Je nach Seite gibt es unterschiedliche Parameter.
/player
Die Seite, die den aktuellen Titel und ggf. Elemente zur Steuerung des Players anzeigt. Ob auf dieser Seite Elemente zur Steuerung des Players angezeigt werden, wird über das Template gesteuert, bzw. über die im Optionsdialog eingestellten Zugriffsrechte.
/playlist
Anzeige der Playlist. Auch diese Seite braucht keine Parameter. Erwähnenswert ist einzig der Anker /playlist#currentTrack, mit dem der Browser zum aktuell abgespielten Titel scrollen kann.
/playlist_details und /library_details
Diese beiden Seiten zeigen die Detail-Informationen zu einem Titel aus der Playlist oder der Medienbibliothek an. Erwartet wird hier ein Parameter id, z.B. /playlist_details?id=12345. Die ID ist die intern verwendete eindeutige ID zu einer Datei, die Nemp beim Start zuordnet. Diese ID kann nach einem Neustart des Servers oder von Nemp weiter gültig sein, aber das ist nicht garantiert.
/search
Für die Suche in der Medienbibliothek gibt es die Suchseite /search. Diese erwartet einen Parameter "query="
Beispiel: /search?query=nightwish listet alle Titel auf, die den Begriff "nightwish" enthalten.
Dabei werden am Ende auch solche Ergebnisse ausgegeben, die den Suchbegriff nicht exakt enthalten. Es wird also eine unscharfe Suche durchgeführt, die auch Tippfehler zulässt. Es kann auch vorkommen, dass Titel aufgelistet werden, die auf den ersten Blick nicht richtig erscheinen. Das liegt daran, dass die Suche auch Felder wie Kommentar oder den Dateipfad berücksichtigt, die im Webserver nicht angezeigt werden.
/library
Die Seite für die Medienbibliothek hat mehrere Parameter. Es sind dabei nicht immer alle Parameter notwendig, bzw. werden einige Parameter im Zweifel ignoriert.
Parameter "mode="
Der Parameter mode steuert, auf welche Art in der Medienbibliothek gestöbert werden soll.
Mögliche Werte sind
- mode=artist
- mode=album
- mode=genre
Beispiel: /library?mode=artist
Parameter "l="
Für die Fälle "artist" und "album" wird über den Parameter l nach Anfangsbuchstaben separiert. Wenn der Parameter nicht angegeben ist, wird der Wert A als Standard-Wert genutzt. Falls zu einem Anfangsbuchstaben keine Interpreten bzw. Alben gefunden werden, wechselt Nemp zum nächsten, der nicht leer ist.
Mögliche Werte sind
- l=0 (Null)
- l=A, .. l=Z
- l=other (für Namen, die nicht mit einer Zahl oder A-Z beginnen)
Da die Anzahl der Genres beschränkt ist, gibt es für den Modus "Genre" diese Einteilung nicht.
Beispiel: /library?mode=artist&l=N zeigt alle Interpreten an, die mit "N" beginnen
Parameter "other="
In größeren Medienbibliotheken kann es vorkommen, dass es viele Interpreten gibt, die nur mit einem oder zwei Titeln vertreten sind. Das macht die Anzeige aller Interpreten oft unübersichtlich. Daher kann im Modus "artist" der Parameter other= benutzt werden.
Mögliche Werte sind
- other=0 (zeigt nur Interpreten an, die mit mindestens 5 Titeln in der Medienbibliothek vertreten sind)
- other=1 (zeigt nur die Interpreten an, die mit höchstens 4 Titeln vertreten sind)
Beispiel: /library?mode=artist&l=N&other=1 zeigt alle Interpreten mit "N" an, von denen höchstens 4 Titel in der Medienbibliothek enthalten sind.
Diese Unterscheidung wird übergangen, wenn die Anzahl der Interpreten mit einem Anfangsbuchstaben höchstens 50 ist, oder wenn eine der Listen höchstens 5 Einträge enthält. In diesen Fällen werden alle Interpreten ausgegeben.
Bei Alben gibt es diese Unterteilung nicht.
Parameter "albumsortmode="
Beim Stöbern nach Alben ist eine Frage eine Geschmacksfrage: Welcher Teil ist relevant mit Blick auf den Anfangsbuchstaben? Soll heißen: Findet man das Album "Error" von "The Warning" unter "E", weil der Titel des Albums mit "E" beginnt, oder doch unter "T", weil der Name der Band mit "T" beginnt?
Um diese Frage nicht beantworten zu müssen, bzw. sie dem Anwender zu überlassen, gibt es den Parameter albumsortmode=.
Mögliche Werte sind
- albumsortmode=artist
- albumsortmode=album
Beispiel: /library?mode=album&albumsortmode=artist&l=N zeigt alle Alben von Künstlern oder Bands an, deren Name mit "N" beginnt.
Wenn dieser Parameter nicht angegeben wird, werden die Alben nach Album-Titel gruppiert und sortiert.
Parameter "id="
Für die Anzeige aller Titel eines bestimmten Albums, Interpreten oder Genres, kann der Parameter "id=" verwendet werden. Mögliche Werte sind die von Nemp vergebenen eindeutigen IDs für die Alben, Interpreten und Genres. Der Parameter "mode=" muss ebenfalls angegeben sein, damit Nemp entscheiden kann, auf welche Objektgruppe sich die ID bezieht.
Beispiel: /library?mode=album&id=4395 zeigt alle Titel des Albums mit der ID 4395 an.
Wenn der Parameter id vorhanden ist, werden eventuell vorhandene andere Parameter ggf. noch für die Hervorhebung im Navigationsmenü benutzt, sind aber ansonsten nicht von Belang.
Parameter "start="
Wenn eine zu lange Dateiliste ausgegeben werden soll, dann teilt der Webserver diese auf in Blöcke zu je 100 Titeln. Welcher Teil angezeigt wird (bzw. überhaupt an den Browser übermittelt wird), bestimmt der Parameter start.
Beispiel: /library?start=50&mode=artist&id=6974 zeigt (maximal) 100 Titel aus der Liste aller Titel des Interpreten mit der ID 6974 an, beginnend beim 50. Titel in dieser Liste.
Dieser Parameter wird auch auf der Such-Seite benutzt, wenn es zu viele Ergebnisse zu einem Suchbegriff gibt.