App zur Steuerung des mpv Mediaplayers auf einem Raspberry Pi über HTTP
undisclosed
2023-01-07 2f2aa7d344d41c6d4083149b1ea6b41e7fb1f683
Baustelle: Calypso 'ins Reine' bauen
3 files added
155 ■■■■■ changed files
src/de/uhilger/calypso/neu/App.java 27 ●●●●● patch | view | raw | blame | history
src/de/uhilger/calypso/neu/AppProperties.java 93 ●●●●● patch | view | raw | blame | history
src/de/uhilger/calypso/neu/Server.java 35 ●●●●● patch | view | raw | blame | history
src/de/uhilger/calypso/neu/App.java
New file
@@ -0,0 +1,27 @@
package de.uhilger.calypso.neu;
import java.util.HashMap;
/**
 *
 * @author Ulrich Hilger
 */
public class App {
  /**
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    HashMap<String, String> initParams = new HashMap();
    for (String arg : args) {
      String[] argParts = arg.split(Server.EQUAL);
      initParams.put(argParts[0], argParts[1]);
    }
    String conf = initParams.get(Server.CONF);
    AppProperties einst = new AppProperties();
    einst.readFile(conf);
    Server server;
    server = new Server();
    server.start(einst);
  }
}
src/de/uhilger/calypso/neu/AppProperties.java
New file
@@ -0,0 +1,93 @@
/*
  Helix - Dateiverwaltung
  Copyright (C) 2021  Ulrich Hilger
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Affero General Public License as
  published by the Free Software Foundation, either version 3 of the
  License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU Affero General Public License for more details.
  You should have received a copy of the GNU Affero General Public License
  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
package de.uhilger.calypso.neu;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Ulrich Hilger
 * @version 1, 01.06.2021
 */
public class AppProperties extends Properties {
  public static final String EMPTY_STR = "";
  public static final int INT_ZERO = 0;
  public String getString(String key) {
    Object o = this.get(key);
    if(o instanceof String) {
      return (String) o;
    } else {
      return EMPTY_STR;
    }
  }
  public int getInt(String key) {
    Object o = this.get(key);
    if(o instanceof String) {
      String intStr = (String) o;
      return Integer.parseInt(intStr);
    } else {
      return INT_ZERO;
    }
  }
  public void readFile(String fName) {
    Logger.getLogger(AppProperties.class.getName()).log(Level.INFO, fName);
    InputStream in = null;
    try {
      // Einstellungen aus Datei lesen
      //AppProperties einst = new AppProperties();
      File einstellungenDatei = new File(fName);
      in = new FileInputStream(einstellungenDatei);
      //BufferedReader br = new BufferedReader(new InputStreamReader(in));
      //String line = br.readLine();
      //while(line != null) {
      //  System.out.println(line);
      //  line = br.readLine();
      //}
      //br.close();
      load(in);
      in.close();
    } catch (FileNotFoundException ex) {
      Logger.getLogger(AppProperties.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
      Logger.getLogger(AppProperties.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
      try {
        in.close();
      } catch (IOException ex) {
        Logger.getLogger(AppProperties.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
  }
}
src/de/uhilger/calypso/neu/Server.java
New file
@@ -0,0 +1,35 @@
package de.uhilger.calypso.neu;
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Ulrich Hilger
 */
public class Server {
  private static final Logger logger = Logger.getLogger(de.uhilger.calypso.Server.class.getName());
  public static final String CONF = "conf";
  public static final String PORT = "port";
  public static final String SKRIPTE = "skripte";
  public static final String EQUAL = "=";
  private AppProperties einst;
  public void start(AppProperties einst) {
    logger.log(Level.INFO, "Server startet auf Port {0}", einst.getString(PORT));
    this.einst = einst;
    String skripte = einst.getString(SKRIPTE);
    File playSkript = new File(skripte, "play");
    if(playSkript.exists()) {
      logger.log(Level.INFO, "Skripte gefunden in {0}", playSkript.getParentFile().getAbsolutePath());
    } else {
      logger.log(Level.INFO, "Skripte nicht gefunden, Ordner laut Einstellungen: {0}", skripte);
    }
  }
}