Persoenliche Mediazentrale
ulrich
2021-04-21 a07e7e7a3010da502deea0e5020189cb7f8477bc
src/de/uhilger/mediaz/api/MediaSteuerung.java
@@ -26,6 +26,7 @@
import de.uhilger.mediaz.entity.Abspielliste;
import de.uhilger.mediaz.entity.Einstellung;
import de.uhilger.mediaz.entity.Entity;
import de.uhilger.mediaz.entity.Livestream;
import de.uhilger.mediaz.entity.Titel;
import de.uhilger.mediaz.store.FileStorage;
import de.uhilger.mediaz.store.Storage;
@@ -45,7 +46,8 @@
 * HTTP GET /mz/api/strg/abspieler/play/liste/[name] 
 * HTTP GET /mz/api/strg/abspieler/ende
 *
 * HTTP POST /mz/api/strg/abspieler/play mit dem Titel im Body
 * HTTP POST /mz/api/strg/abspieler/play/titel mit dem Titel im Body
 * HTTP POST /mz/api/strg/abspieler/play/stream mit dem Livestream im Body (nur Name gefuellt)
 *
 * HTTP GET /mz/api/strg/abspieler/pause 
 * HTTP GET /mz/api/strg/abspieler/stop 
@@ -128,25 +130,52 @@
    String path = e.getRequestURI().toString();
    String[] elems = path.split(Server.SLASH);
    FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
    String titelJson = bodyLesen(e);
    Gson gson = new Gson();
    Object o = gson.fromJson(titelJson, fs.typeFromName(Titel.class.getSimpleName()).getType());
    if(o instanceof Titel) {
      Titel titel = (Titel) o;
      String titelUrl = titel.getKatalogUrl() + titel.getPfad() + titel.getName();
      Entity entity = fs.read(FileStorage.ST_ABSPIELER, elems[4]);
      if (entity instanceof Abspieler) {
        Abspieler abspieler = (Abspieler) entity;
        String server = getEinstellung(fs, App.getRs(App.RB_HOST), DEFAULT_HOST);
        String signal = abspielKommando(fs, abspieler, server, titelUrl).toString();
        abspielerKommandoSenden(signal);
        return signal + "gesendet.";
    if(elems[5].equalsIgnoreCase("titel")) {
      String titelJson = bodyLesen(e);
      Gson gson = new Gson();
      Object o = gson.fromJson(titelJson, fs.typeFromName(Titel.class.getSimpleName()).getType());
      if(o instanceof Titel) {
        Titel titel = (Titel) o;
        String titelUrl = titel.getKatalogUrl() + titel.getPfad() + titel.getName();
        Entity entity = fs.read(FileStorage.ST_ABSPIELER, elems[4]);
        if (entity instanceof Abspieler) {
          Abspieler abspieler = (Abspieler) entity;
          String server = getEinstellung(fs, App.getRs(App.RB_HOST), DEFAULT_HOST);
          String signal = abspielKommando(fs, abspieler, server, titelUrl).toString();
          abspielerKommandoSenden(signal);
          return signal + "gesendet.";
        } else {
          return meldung("Ungueltiger Abspieler.", 404);
        }
      } else {
        return meldung("Ungueltiger Abspieler.", 404);
        return meldung("Ungueltiger Titel.", 404);
      }
    } else if(elems[5].equalsIgnoreCase("stream")) {
      String streamJson = bodyLesen(e);
      Gson gson = new Gson();
      Object o = gson.fromJson(streamJson, fs.typeFromName(Livestream.class.getSimpleName()).getType());
      if(o instanceof Livestream) {
        Entity entity = fs.read(FileStorage.ST_LIVESTREAM, ((Livestream) o).getName());
        if(entity instanceof Livestream) {
          Livestream stream = (Livestream) entity;
          entity = fs.read(FileStorage.ST_ABSPIELER, elems[4]);
          if (entity instanceof Abspieler) {
            Abspieler abspieler = (Abspieler) entity;
            String server = "";
            String signal = abspielKommando(fs, abspieler, server, stream.getUrl()).toString();
            abspielerKommandoSenden(signal);
            return signal + "gesendet.";
          } else {
            return meldung("Ungueltiger Abspieler.", 404);
          }
        } else {
          return meldung("Ungueltiger Livestream.", 404);
        }
      } else {
       return meldung("Ungueltiger Livestream.", 404);
      }
    } else {
      return meldung("Ungueltiger Titel.", 404);
      return meldung("Ungueltiger URL.", 404);
    }
  }