Persoenliche Mediazentrale
ulrich
2021-04-12 d027b57c66dcdb183683c34101518df1572c1bf8
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,7 +130,7 @@
    String path = e.getRequestURI().toString();
    String[] elems = path.split(Server.SLASH);
    FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
    if(elems[5].equalsIgnoreCase("titel")) {
    String titelJson = bodyLesen(e);
    Gson gson = new Gson();
    Object o = gson.fromJson(titelJson, fs.typeFromName(Titel.class.getSimpleName()).getType());
@@ -148,6 +150,33 @@
    } else {
      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 URL.", 404);
    }
  }
  
  private String kommandoSenden(Storage s, String aName, String kommando) {