Persoenliche Mediazentrale
undisclosed
2023-01-23 03b95f100b605458e5bf2995e955882d9aa51868
URL in m3u berichtigt
4 files modified
63 ■■■■ changed files
src/de/uhilger/tango/Server.java 1 ●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/AbstractHandler.java 19 ●●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/ListHandler.java 24 ●●●● patch | view | raw | blame | history
src/de/uhilger/tango/api/MediaSteuerung.java 19 ●●●●● patch | view | raw | blame | history
src/de/uhilger/tango/Server.java
@@ -62,6 +62,7 @@
  //public static final String RB_ABLAGE_TEST = "testAblage";
  //public static final String RB_STORE_TEST = "testStore";
  public static final String SLASH = "/";
  public static final String NEWLINE = "\n";
  private int port;
src/de/uhilger/tango/api/AbstractHandler.java
@@ -21,6 +21,9 @@
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import de.uhilger.tango.App;
import de.uhilger.tango.entity.Einstellung;
import de.uhilger.tango.entity.Entity;
import de.uhilger.tango.store.Storage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -155,4 +158,20 @@
    return rb.getString(key);
  }
  
  protected String getEinstellung(Storage s, String key, String standardWert) {
    Entity entity = s.read(Einstellung.class.getSimpleName(), key);
    if (entity instanceof Einstellung) {
      Einstellung einstellung = (Einstellung) entity;
      Object o = einstellung.getValue();
      if(o instanceof String) {
        return o.toString();
      } else {
        return standardWert;
      }
    } else {
      return standardWert;
    }
  }
}
src/de/uhilger/tango/api/ListHandler.java
@@ -25,7 +25,6 @@
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.List;
import java.util.logging.Logger;
@@ -33,16 +32,16 @@
/**
 * 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
@@ -97,12 +96,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();
src/de/uhilger/tango/api/MediaSteuerung.java
@@ -19,12 +19,10 @@
import com.google.gson.Gson;
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.tango.App;
import de.uhilger.tango.Server;
import de.uhilger.tango.entity.Abspielvorgang;
import de.uhilger.tango.entity.Abspieler;
import de.uhilger.tango.entity.Abspielliste;
import de.uhilger.tango.entity.Einstellung;
import de.uhilger.tango.entity.Entity;
import de.uhilger.tango.entity.Livestream;
import de.uhilger.tango.entity.Titel;
@@ -362,22 +360,7 @@
    return kmd;    
  }
  private String getEinstellung(Storage s, String key, String standardWert) {
    Entity entity = s.read(Einstellung.class.getSimpleName(), key);
    if (entity instanceof Einstellung) {
      Einstellung einstellung = (Einstellung) entity;
      Object o = einstellung.getValue();
      if(o instanceof String) {
        return o.toString();
      } else {
        return standardWert;
      }
    } else {
      return standardWert;
    }
  }
  private void abspielerKommandoSenden(String kommando) {
    /*
      TODO hier evtl. mit mehreren Versuchen ausgleichen,