ulrich
2018-03-09 74f15b5b543bd46ae8ff22b424f2675d08ce3838
Abspielen via PiRC auf den Server verlagert
5 files modified
102 ■■■■■ changed files
src/java/de/uhilger/radiozentrale/api/AbspielerApi.java 26 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/radiozentrale/api/DbApi.java 52 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/radiozentrale/api/SenderApi.java 4 ●●●● patch | view | raw | blame | history
web/WEB-INF/sql.properties 14 ●●●● patch | view | raw | blame | history
web/app.js 6 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
@@ -20,9 +20,13 @@
import de.uhilger.baselink.PersistenceManager;
import de.uhilger.radiozentrale.daten.Abspieler;
import de.uhilger.radiozentrale.daten.Sender;
import de.uhilger.radiozentrale.web.Initialiser;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
@@ -34,7 +38,7 @@
  public static final String KEY_ABSPIELER_ID = "abs_id";
  public static final String ABSPIELER_SELECTED = "selected";
  public static final String SQL_GET_ABSPIELER = "getAbspieler";
  public static final String SQL_GET_ABSPIELER_LIST = "getAbspielerList";
  public static final String SQL_UNSEL_ABSPIELER = "unselectAbspieler";
  
@@ -101,7 +105,25 @@
  }
  
  public List abspielerliste() {
    return getDb().select(getSql(SQL_GET_ABSPIELER), getMapper(Initialiser.MP_ABSPIELER));
    return getDb().select(getSql(SQL_GET_ABSPIELER_LIST), getMapper(Initialiser.MP_ABSPIELER));
  }
  
  public String abspielen(int abspielerId, int senderId) {
    Abspieler a = getAbspieler(abspielerId);
    Sender s = getSender(senderId);
    StringBuffer url = new StringBuffer();
    url.append(a.getUrl());
    url.append("/sys/rpc?c=de.uhilger.pirc.App&m=abspielenMitParametern&p=");
    url.append(s.getUrl());
    url.append("&p=-o%20local&p=");
    return abspielerKommandoSenden(url.toString());
  }
  public String abspielenStoppen(int abspielerId) {
    Abspieler a = getAbspieler(abspielerId);
    StringBuffer url = new StringBuffer();
    url.append(a.getUrl());
    url.append("/sys/rpc?c=de.uhilger.pirc.App&m=kommando&p=q");
    return abspielerKommandoSenden(url.toString());
  }
}
src/java/de/uhilger/radiozentrale/api/DbApi.java
@@ -7,15 +7,26 @@
import de.uhilger.baselink.GenericRecord;
import de.uhilger.baselink.PersistenceManager;
import de.uhilger.radiozentrale.daten.Abspieler;
import de.uhilger.radiozentrale.daten.Sender;
import de.uhilger.radiozentrale.web.Initialiser;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 */
public abstract class DbApi extends Api {
  
  private static final Logger logger = Logger.getLogger(DbApi.class.getName());
  public static final String SQL_GET_NEXT_KEY = "getNextKey";
  public static final String SQL_INCREMENT_KEY = "incrementKey";
  public static final String SQL_GET_ABSPIELER = "getAbspieler";
  public static final String SQL_GET_SENDER = "getSender";
  
  protected int getNextId(PersistenceManager db, String key) {
    int nextKey = -1;
@@ -28,4 +39,45 @@
    }
    return nextKey;
  }
  protected Abspieler getAbspieler(int id) {
    Abspieler a = null;
    List list = getDb().select(getSql(SQL_GET_ABSPIELER), getMapper(Initialiser.MP_ABSPIELER), true, id);
    if(list != null && list.size() > 0) {
      Object o = list.get(0);
      if(o instanceof Abspieler) {
        a = (Abspieler) o;
      }
    }
    return a;
  }
  protected Sender getSender(int id) {
    Sender s = null;
    List list = getDb().select(getSql(SQL_GET_SENDER), getMapper(Initialiser.MP_SENDER), true, id);
    if(list != null && list.size() > 0) {
      Object o = list.get(0);
      if(o instanceof Sender) {
        s = (Sender) o;
      }
    }
    return s;
  }
  protected String abspielerKommandoSenden(String kommando) {
    String antwort = null;
    logger.info(kommando);
    try {
      HttpURLConnection conn = (HttpURLConnection) new URL(kommando).openConnection();
      conn.setRequestMethod("GET");
      conn.connect();
      int status = conn.getResponseCode();
      String msg = conn.getResponseMessage();
      antwort = "Kommando " + kommando + " mit Status " + status + " " + msg + " gesendet.";
      logger.log(Level.INFO, antwort);
    } catch(Exception ex) {
      logger.log(Level.INFO, ex.getMessage(), ex);
    }
    return antwort;
  }
}
src/java/de/uhilger/radiozentrale/api/SenderApi.java
@@ -32,7 +32,7 @@
  
  private static final Logger logger = Logger.getLogger(SenderApi.class.getName());
  
  public static final String SQL_GET_SENDER = "getSender";
  public static final String SQL_GET_SENDER_LIST = "getSenderList";
  public static final String KEY_SENDER_ID = "sender_id";
  
  public Sender neuerSender(Sender sender) {
@@ -80,7 +80,7 @@
  }
  
  public List senderliste() {
    return getDb().select(getSql(SQL_GET_SENDER), getMapper(Initialiser.MP_SENDER));
    return getDb().select(getSql(SQL_GET_SENDER_LIST), getMapper(Initialiser.MP_SENDER));
  }
  
}
web/WEB-INF/sql.properties
@@ -23,14 +23,24 @@
    app.keytable 
    where key_name = ?
  </entry>
  <entry key="getSender">
  <entry key="getSenderList">
    select * from 
    app.sender
  </entry>
  <entry key="getAbspieler">
  <entry key="getSender">
    select * from
    app.sender
    where sender_id = ?
  </entry>
  <entry key="getAbspielerList">
    select * from 
    app.abspieler
  </entry>
  <entry key="getAbspieler">
    select * from
    app.abspieler
    where abs_id = ?
  </entry>
  <entry key="unselectAbspieler">
    update app.abspieler 
    set abs_zustand = ? 
web/app.js
@@ -129,11 +129,14 @@
function app_abspielen(sender, abspieler) {
  var url;
  if(abspieler.typ === 'pirc') {
    /*
    url =
      abspieler.url +
      '/sys/rpc?c=de.uhilger.pirc.App&m=abspielenMitParametern&p=' +
      sender.url +
      '&p=-o%20local&p=';
    */
    url = URL_ABSPIELER_API + 'abspielen&p=' + abspieler.id + '&p=' + sender.id;
    app_radio_kommando_senden(url);
  } else {
    url = sender.url;
@@ -145,9 +148,12 @@
function app_abspielen_stoppen() {
  var abspieler = app_get_abspiel_ziel();
  if(abspieler.typ === 'pirc') {
    /*
    var url =
      abspieler.url +
      '/sys/rpc?c=de.uhilger.pirc.App&m=kommando&p=q';
    */
    var url = URL_ABSPIELER_API + 'abspielenStoppen&p=' + abspieler.id;
    app_radio_kommando_senden(url);
  } else {
    // 'hier abspielen' stoppen muss noch gebaut werden