From 89e41699fee6789130e20837831509bcacc9b1ff Mon Sep 17 00:00:00 2001
From: ulrich
Date: Mon, 24 Mar 2025 19:13:08 +0000
Subject: [PATCH] Beruecksichtigung eines gleichnamigen Untertitel-Files
---
src/de/uhilger/tango/api/ListHandler.java | 49 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/src/de/uhilger/tango/api/ListHandler.java b/src/de/uhilger/tango/api/ListHandler.java
index c3ab471..341456c 100644
--- a/src/de/uhilger/tango/api/ListHandler.java
+++ b/src/de/uhilger/tango/api/ListHandler.java
@@ -20,29 +20,31 @@
import com.google.gson.Gson;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
+import de.uhilger.tango.PlaylistListener;
import de.uhilger.tango.Server;
import de.uhilger.tango.entity.Abspielliste;
import de.uhilger.tango.entity.Entity;
import de.uhilger.tango.entity.Titel;
import de.uhilger.tango.store.FileStorage;
-import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.logging.Logger;
/**
* Der ListHandler bearbeitet HTTP-Anfragen zu Abspiellisten
*
- * GET /mz/api/alist/[pl-name] die Titel-Objekte der Liste [pl-name] liefern
- * GET /mz/api/alist/[pl-name]/m3u eine einfache Playlist im M3U-Format ausgeben
- * GET /mz/api/alist/[pl-name]/[nr] den Titel mit der Nummer [nr] abrufen
+ * GET /tango/api/alist/[pl-name] die Titel-Objekte der Liste [pl-name] liefern
+ * GET /tango/api/alist/[pl-name]/m3u eine einfache Playlist im M3U-Format ausgeben
+ * GET /tango/api/alist/[pl-name]/[nr] den Titel mit der Nummer [nr] abrufen
*
- * PUT /mz/api/alist/[pl-name] den Titel im Body anfuegen an die Liste [pl-name]
- * PUT /mz/api/alist/[pl-name]/[nr] an der Position nr der Liste [pl-name] den Titel im Body einfuegen
- * PUT /mz/api/alist/[pl-name]/[nrVon]/[nrNach] den Titel von seiner aktuellen Position an eine
+ * PUT /tango/api/alist/[pl-name] den Titel im Body anfuegen an die Liste [pl-name]
+ * PUT /tango/api/alist/[pl-name]/[nr] an der Position nr der Liste [pl-name] den Titel im Body einfuegen
+ * PUT /tango/api/alist/[pl-name]/[nrVon]/[nrNach] den Titel von seiner aktuellen Position an eine
* andere Position der Liste [pl-name] verschieben
- * DELETE /mz/api/alist/[pl-name]/[nr] den Titel an der Position [nr] aus der Liste [pl-name] entfernen
- * DELETE /mz/api/alist/[pl-name]/alle alle Titel aus der Liste [pl-name] entfernen
+ * DELETE /tango/api/alist/[pl-name]/[nr] den Titel an der Position [nr] aus der Liste [pl-name] entfernen
+ * DELETE /tango/api/alist/[pl-name]/alle alle Titel aus der Liste [pl-name] entfernen
*
* TODO (2.1.2023):
* - Liste ab Titel spielen
@@ -59,8 +61,11 @@
private String conf;
+ private List<PlaylistListener> listeners;
+
public ListHandler(String conf) {
this.conf = conf;
+ listeners = new ArrayList();
}
@Override
@@ -97,12 +102,13 @@
List<Titel> titelListe = liste.getTitel();
for(Titel titel : titelListe) {
-
- sb.append("http://hsrv:9090/tango");
+ String server = getEinstellung(fs,
+ getResString(MediaSteuerung.RB_HOST), MediaSteuerung.DEFAULT_HOST);
+ sb.append(server);
sb.append(titel.getKatalogUrl());
sb.append(titel.getPfad());
sb.append(titel.getName());
- sb.append("\n");
+ sb.append(Server.NEWLINE);
}
}
return sb.toString();
@@ -242,7 +248,9 @@
if(titelStr.equalsIgnoreCase(ALLE_TITEL)) {
liste.getTitel().clear();
} else {
- liste.getTitel().remove(Integer.parseInt(elems[elems.length-1]));
+ int idx = Integer.parseInt(elems[elems.length-1]);
+ liste.getTitel().remove(idx);
+ sendRemovalInfo(liste.getName(), idx);
}
fs.write(liste, true);
return true;
@@ -251,4 +259,19 @@
}
}
+ private void sendRemovalInfo(String listName, int titleIndex) {
+ Iterator<PlaylistListener> i = listeners.iterator();
+ while(i.hasNext()) {
+ PlaylistListener l = i.next();
+ l.titleRemoved(listName, titleIndex);
+ }
+ }
+
+ public void addPlaylistListener(PlaylistListener listener) {
+ this.listeners.add(listener);
+ }
+
+ public void removePlaylistListener(PlaylistListener listener) {
+ this.listeners.remove(listener);
+ }
}
--
Gitblit v1.9.3