|
@@ -5,17 +5,14 @@
|
|
|
package de.nplusc.izc.iZpl;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import org.apache.logging.log4j.LogManager;
|
|
|
-import org.apache.logging.log4j.Logger;
|
|
|
import org.yaml.snakeyaml.Yaml;
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
+ * Compatibility stub without logic due to some unserializing of data
|
|
|
* @author LH
|
|
|
*/
|
|
|
public class PlProcessor //implements HttpHandler
|
|
|
{
|
|
|
- private static final Logger l = LogManager.getLogger();
|
|
|
private ArrayList<String[]> pool1=new ArrayList<>(),pool2=new ArrayList<>();//wird verschoben so dass jedes Element drankommt und dann erst von vorne begonnen wird
|
|
|
private int poolSize=0;
|
|
|
private int unusedElems=0;
|
|
@@ -97,177 +94,5 @@ public class PlProcessor //implements HttpHandler
|
|
|
|
|
|
//</editor-fold>
|
|
|
|
|
|
- /*
|
|
|
- public void InitializeOnPath(String PlPath)
|
|
|
- {
|
|
|
- path=PlPath;
|
|
|
- reloadLists();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public void reloadLists()
|
|
|
- {
|
|
|
- reloadLists(false);
|
|
|
- }
|
|
|
-
|
|
|
- public void reloadLists(boolean reload)
|
|
|
- {
|
|
|
- pool1=new ArrayList<>();
|
|
|
- if(!reload)
|
|
|
- {
|
|
|
- l.trace("Das solte nur bei Init auftauchen");
|
|
|
- pool2=new ArrayList<>();//wichtig bei reload
|
|
|
- }
|
|
|
- List<String[]> list = PLReader.readList(path);
|
|
|
- if(list==null)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
- String[] g0 = list.get(0);//0-liste muss anderst verarztet werden
|
|
|
- for (String etr : g0)
|
|
|
- {
|
|
|
- pool1.add(new String[]{etr});//randomizer arbeitetblockweise und einzeleinträge=neue Blöcke
|
|
|
- }
|
|
|
- list.remove(0);//NA DU SCHEISSER; WIE ISTS NACH SO LANGER ZEIT GEKILLT ZU WERDEN!
|
|
|
- for (String[] blox : list)
|
|
|
- {
|
|
|
- pool1.add(blox);
|
|
|
- }
|
|
|
- if(reload)
|
|
|
- {
|
|
|
-
|
|
|
- l.info("StartingReloadProcess");
|
|
|
- try
|
|
|
- {
|
|
|
- if (IZPLApi.createDebugDumps())
|
|
|
- {
|
|
|
- FileTK.writeFile(yp.dump(pool2), "izpl-viewme.yDUMP");
|
|
|
- }
|
|
|
- for (int i=0;i<pool2.size();i++)
|
|
|
- {
|
|
|
- String[] el=pool2.get(i);
|
|
|
-
|
|
|
- //FunztNichtError
|
|
|
- //int idx = pool1.indexOf(el);
|
|
|
- int idx=-1;
|
|
|
- for (int j = 0; j < pool1.size(); j++)
|
|
|
- {
|
|
|
- String[] l = pool1.get(j);
|
|
|
- if(el[0].equals(l[0]))
|
|
|
- {
|
|
|
- idx=j;
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- l.trace(idx);
|
|
|
- yp.dump(el);
|
|
|
- if(idx==-1)
|
|
|
- {
|
|
|
- pool2.remove(i);//entfernte elemente killen
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- pool1.remove(idx);//subtrahieren der bereits gespielten elemente
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- catch(Exception e)
|
|
|
- {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
|
- l.trace("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");
|
|
|
- l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
|
- l.trace("ArrayResult of the Internal List");
|
|
|
- l.trace("\n"+yp.dump(pool1));
|
|
|
- l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
|
- l.trace("List2; nur bei Reload wixtix");
|
|
|
- l.trace("\n"+yp.dump(pool2));
|
|
|
- l.trace("ENd of Block:MasterbLOCK");
|
|
|
- l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
|
- l.trace("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");
|
|
|
- l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
|
- if(!reload)
|
|
|
- {
|
|
|
- poolSize = pool1.size();
|
|
|
- unusedElems=poolSize;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- poolSize=pool1.size()+pool2.size();
|
|
|
- unusedElems = pool1.size();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public void handle(HttpExchange t) throws IOException
|
|
|
- {
|
|
|
- String time = new Date(System.currentTimeMillis()).toString();
|
|
|
- l.info("IZPL-HAndler:Received Request at:"+time);
|
|
|
- String response = "Nixda mit glotzen...\n Hier gibts keine Filezzzzzzz, also raus und zwar dalli";
|
|
|
- /* if(!t.getRemoteAddress().getHostName().equalsIgnoreCase("localhost"))
|
|
|
- {
|
|
|
- t.sendResponseHeaders(403, response.length());
|
|
|
- OutputStream os = t.getResponseBody();
|
|
|
- os.write(response.getBytes());
|
|
|
- os.close();
|
|
|
- return;
|
|
|
- }* /
|
|
|
- response = "#EXTM3U";
|
|
|
- // \N am anfang jeder zeile....
|
|
|
- String tr = getBlock();
|
|
|
- response+=tr;
|
|
|
- response+="\nhttp://localhost:9263/lst.m3u";//:9263/lst.m3u";//continueCode //Exit wird durch unblock woanderst realisiert
|
|
|
- l.info("IZPL-HAndler:Responded with:"+response);
|
|
|
- t.sendResponseHeaders(200, response.length());
|
|
|
- Headers responseHeaders = t.getResponseHeaders();
|
|
|
- responseHeaders.set("Content-Type", "audio/x-mpegurl");
|
|
|
-
|
|
|
- OutputStream os = t.getResponseBody();
|
|
|
- os.write(response.getBytes());
|
|
|
- failRSP=response;
|
|
|
- os.close();
|
|
|
- time = new Date(System.currentTimeMillis()).toString();
|
|
|
- l.info("IZPL-HAndler:Answered Request at:"+time);
|
|
|
- }
|
|
|
- public String getBlock()
|
|
|
- {
|
|
|
- String response = "";
|
|
|
- double rm = Math.random();//Zufallsselektor
|
|
|
- int selection = (int) (rm*unusedElems);//macht nix...
|
|
|
- String[] loadedBlock = pool1.get(selection);
|
|
|
- if(loadedBlock[0].length()>5)
|
|
|
- {
|
|
|
- pool2.add(loadedBlock); //legts in benutzt-Pool ab //wenn Pool1 leer dann tauschen diese ihren Platz
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- poolSize--;
|
|
|
- unusedElems--;
|
|
|
- pool1.remove(selection);//nimmts vorm nxten durchlauf raus
|
|
|
- return getBlock();
|
|
|
- }
|
|
|
- pool1.remove(selection);//nimmts vorm nxten durchlauf raus
|
|
|
- unusedElems--;
|
|
|
- if(unusedElems==0)//Bei ende refill
|
|
|
- {
|
|
|
- pool1=pool2;
|
|
|
- pool2=new ArrayList<>();
|
|
|
- unusedElems=poolSize;
|
|
|
- }
|
|
|
- for (String line : loadedBlock)
|
|
|
- {
|
|
|
- response+="\n"+line;
|
|
|
-
|
|
|
- }
|
|
|
- response=response.replaceAll("\\\n\\\n", "\\\n");
|
|
|
- return response;
|
|
|
- }*/
|
|
|
}
|
|
|
|