From 516837f42dcfb610560b73fc736d26e2cbc1bb08 Mon Sep 17 00:00:00 2001 From: Daniel Aberger Date: Fri, 18 Mar 2016 18:04:29 +0100 Subject: [PATCH] Added new feature to add http proxy. --- src/com/ixab/ConfigHandling/Config.java | 9 ++++++ src/com/ixab/GUI/SettingsWindow.form | 28 +++++++++++++++---- src/com/ixab/GUI/SettingsWindow.java | 3 ++ src/com/ixab/Main.java | 3 +- src/com/ixab/StreamHandling/StreamOpener.java | 14 +++++++++- 5 files changed, 49 insertions(+), 8 deletions(-) diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java index 813600c..9d1e1ac 100644 --- a/src/com/ixab/ConfigHandling/Config.java +++ b/src/com/ixab/ConfigHandling/Config.java @@ -17,6 +17,8 @@ public class Config implements Serializable { private int sortStreamsBy; + private String proxy; + public int getLastSelectedStream() { return lastSelectedStream; } @@ -69,4 +71,11 @@ public class Config implements Serializable { this.streamItems = list; ConfigFileIOHandler.save(); } + + public String getProxy() { + return proxy; + } + public void setProxy(String proxy) { + this.proxy = proxy; + } } diff --git a/src/com/ixab/GUI/SettingsWindow.form b/src/com/ixab/GUI/SettingsWindow.form index 4687d3c..6e44eb3 100644 --- a/src/com/ixab/GUI/SettingsWindow.form +++ b/src/com/ixab/GUI/SettingsWindow.form @@ -49,7 +49,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -99,7 +99,7 @@ - + @@ -107,7 +107,7 @@ - + @@ -117,12 +117,28 @@ - + + + + + + + + + + + + + + + + + diff --git a/src/com/ixab/GUI/SettingsWindow.java b/src/com/ixab/GUI/SettingsWindow.java index 5a09ba8..e2edbc4 100644 --- a/src/com/ixab/GUI/SettingsWindow.java +++ b/src/com/ixab/GUI/SettingsWindow.java @@ -16,9 +16,11 @@ public class SettingsWindow extends JDialog { private JButton suchenButton; private JTextField twitchBenutzernameTextField; private JButton buttonImportUserData; + private JTextField textFieldProxy; public SettingsWindow() { textField1.setText(ConfigFileInstanceHandler.getConfig().getLSPath()); + textFieldProxy.setText(ConfigFileInstanceHandler.getConfig().getProxy()); setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK); @@ -95,6 +97,7 @@ public class SettingsWindow extends JDialog { private void onOK() { ConfigFileInstanceHandler.getConfig().setLSPath(textField1.getText()); + ConfigFileInstanceHandler.getConfig().setProxy(textFieldProxy.getText()); ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig()); dispose(); } diff --git a/src/com/ixab/Main.java b/src/com/ixab/Main.java index 176a48a..f849eea 100644 --- a/src/com/ixab/Main.java +++ b/src/com/ixab/Main.java @@ -9,7 +9,7 @@ import com.ixab.GUI.MainWindow; import javax.swing.*; public class Main { - private final static String version = "0.51 Alpha"; + private final static String version = "0.52 Alpha"; private static Config c = null; public static void main(String[] args) { try { @@ -45,6 +45,7 @@ public class Main { jfc.showOpenDialog(jf); if (jfc.getSelectedFile() == null) System.exit(-1); c.setLSPath(jfc.getSelectedFile().getAbsolutePath()); + c.setProxy(""); jf.dispose(); ConfigFileIOHandler.save(c); } diff --git a/src/com/ixab/StreamHandling/StreamOpener.java b/src/com/ixab/StreamHandling/StreamOpener.java index 8c1f8b7..8978c8d 100644 --- a/src/com/ixab/StreamHandling/StreamOpener.java +++ b/src/com/ixab/StreamHandling/StreamOpener.java @@ -11,16 +11,28 @@ public class StreamOpener extends Thread { private Config c; private String streamName; private String quality; + private String proxy; + private String proxyParam; public StreamOpener(Config c, int streamIndex, String quality) { this.c = c; this.streamName = c.getStreamName(streamIndex); this.quality = quality; + this.proxy = c.getProxy(); } public void run() { try { Logger.print("Starting stream livestreamer for "+this.streamName+" at "+this.quality+" quality"); Runtime rt = Runtime.getRuntime(); - Process pr = rt.exec(this.c.getLSPath()+" twitch.tv/"+this.streamName+" "+this.quality); + // TODO: all this needs clean up + if (!this.proxy.equals("")) { + StringBuilder sb = new StringBuilder(); + sb.append(" --http-proxy "); + sb.append(this.proxy); + this.proxyParam = sb.toString(); + } else { + this.proxyParam = ""; + } + Process pr = rt.exec(this.c.getLSPath()+" twitch.tv/"+this.streamName+" "+this.quality+this.proxyParam); BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));