From 15ed25a13d5f8340dfecef50d23173aef45af125 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 31 Mar 2021 19:34:01 +0000
Subject: [PATCH] OMXPlayer Log (in Arbeit)
---
src/de/uhilger/avdirektor/Server.java | 2 +
src/de/uhilger/avdirektor/handler/PlayHandler.java | 4 ++
src/de/uhilger/avdirektor/OMXLogLeser.java | 51 +++++++++++++++++++++++++
src/de/uhilger/avdirektor/handler/LogHandler.java | 30 +++++++++++++++
4 files changed, 87 insertions(+), 0 deletions(-)
diff --git a/src/de/uhilger/avdirektor/OMXLogLeser.java b/src/de/uhilger/avdirektor/OMXLogLeser.java
new file mode 100644
index 0000000..80b2765
--- /dev/null
+++ b/src/de/uhilger/avdirektor/OMXLogLeser.java
@@ -0,0 +1,51 @@
+package de.uhilger.avdirektor;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author ulrich
+ */
+public class OMXLogLeser {
+
+ private static final Logger logger = Logger.getLogger(OMXLogLeser.class.getName());
+
+ public String lesen(File logfile) throws FileNotFoundException, IOException {
+ InputStream is = new FileInputStream(logfile);
+ BufferedReader r = new BufferedReader(new InputStreamReader(is));
+ String firstLine = r.readLine();
+ String lastLine = "";
+ if(firstLine != null) {
+ long size = logfile.length();
+ long pos = size - (long) 1000;
+ logger.info("Size: " + size + ", Pos: " + pos); // 2.341.930 Bytes
+ long skipped = r.skip(pos);
+ logger.info("skipped: " + skipped);
+ String line = r.readLine();
+ while(line != null) {
+ lastLine = line;
+ logger.info(lastLine);
+ line = r.readLine();
+ }
+ }
+ r.close();
+ is.close();
+ StringBuilder sb = new StringBuilder();
+ sb.append("\r\n---");
+ sb.append("\r\nfirst line:\r\n");
+ sb.append(firstLine);
+ sb.append("\r\n\r\nlastLine\r\n");
+ sb.append(lastLine);
+ String lines = sb.toString();
+ logger.info(lines);
+ return lines;
+ }
+
+}
diff --git a/src/de/uhilger/avdirektor/Server.java b/src/de/uhilger/avdirektor/Server.java
index e768c81..fd02b99 100644
--- a/src/de/uhilger/avdirektor/Server.java
+++ b/src/de/uhilger/avdirektor/Server.java
@@ -21,6 +21,7 @@
import com.sun.net.httpserver.HttpServer;
import de.uhilger.avdirektor.handler.CmdHandler;
import de.uhilger.avdirektor.handler.FileHandler;
+import de.uhilger.avdirektor.handler.LogHandler;
import de.uhilger.avdirektor.handler.OMXPlayer;
import de.uhilger.avdirektor.handler.PingHandler;
import de.uhilger.avdirektor.handler.PlayHandler;
@@ -61,6 +62,7 @@
server.createContext("/avd/pause", new CmdHandler(OMXPlayer.CMD_PAUSE_RESUME));
server.createContext("/avd/ping", new PingHandler(OMXPlayer.F_PING));
server.createContext("/avd/server/stop", new StopServerHandler());
+ server.createContext("/avd/log", new LogHandler());
server.createContext("/avd/ui", new FileHandler(App.getInitParameter(App.IP_WWW_DATA)));
//server.setExecutor(null); // creates a default executor
server.setExecutor(Executors.newFixedThreadPool(20));
diff --git a/src/de/uhilger/avdirektor/handler/LogHandler.java b/src/de/uhilger/avdirektor/handler/LogHandler.java
new file mode 100644
index 0000000..8d49d27
--- /dev/null
+++ b/src/de/uhilger/avdirektor/handler/LogHandler.java
@@ -0,0 +1,30 @@
+package de.uhilger.avdirektor.handler;
+
+import com.sun.net.httpserver.HttpExchange;
+import de.uhilger.avdirektor.OMXLogLeser;
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author ulrich
+ */
+public class LogHandler extends AbstractHandler {
+
+ private static final Logger logger = Logger.getLogger(LogHandler.class.getName());
+
+ @Override
+ protected String process(HttpExchange t, String params) {
+ OMXLogLeser leser = new OMXLogLeser();
+ String lines = "Log nicht lesbar.";
+ try {
+ lines = leser.lesen(new File("/home/ulrich/work/avd/omxplayer.log"));
+ } catch (IOException ex) {
+ Logger.getLogger(LogHandler.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ return lines;
+ }
+
+}
diff --git a/src/de/uhilger/avdirektor/handler/PlayHandler.java b/src/de/uhilger/avdirektor/handler/PlayHandler.java
index 61658bd..aa32fcd 100644
--- a/src/de/uhilger/avdirektor/handler/PlayHandler.java
+++ b/src/de/uhilger/avdirektor/handler/PlayHandler.java
@@ -67,6 +67,10 @@
params.append(getParam(map, "th"));
params.append(" --timeout ");
params.append(getParam(map, "ti"));
+ String log = getParam(map, "log");
+ if(log != null && log.equalsIgnoreCase("true")) {
+ params.append(" --genlog");
+ }
return params;
}
--
Gitblit v1.9.3