From 744bca6839c7e1fb61e63f3145229e54b8dc757f Mon Sep 17 00:00:00 2001 From: BelPE Date: Wed, 26 Apr 2023 17:21:50 +0800 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D0=BA?= =?UTF-8?q?=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dbnavigator.xml | 5 +- out/artifacts/proxy/config/config.json | 4 +- out/artifacts/proxy/proxy.jar | Bin 58658 -> 60959 bytes out/production/proxy/org/proxy/Main.class | Bin 9881 -> 14571 bytes src/org/proxy/Main.java | 170 ++++++++++++++++++++-- 5 files changed, 167 insertions(+), 12 deletions(-) diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml index 18a9980..b8fb171 100644 --- a/.idea/dbnavigator.xml +++ b/.idea/dbnavigator.xml @@ -2,7 +2,7 @@ - + @@ -27,6 +27,9 @@ + + + diff --git a/out/artifacts/proxy/config/config.json b/out/artifacts/proxy/config/config.json index 991e120..b51fb44 100644 --- a/out/artifacts/proxy/config/config.json +++ b/out/artifacts/proxy/config/config.json @@ -1,9 +1,11 @@ { "port" : "7458", "proxyList" : [ + "https://notaproxy.ru", + "http://proxy.com", "http://ideco.mcs.br/wpad.dat", "http://proxy.mcs.br:8080/array.dll?Get.Routing.Script" ], "setRepeatTimeMs" : "60000", "deleteBySevenDays" : "true" -} \ No newline at end of file +} diff --git a/out/artifacts/proxy/proxy.jar b/out/artifacts/proxy/proxy.jar index 5fa5d1934b92ff9fd529445ad30b77a02ccf21ba..ad9f002e01e92ba4f87708c7b59129707a9c95e5 100644 GIT binary patch delta 7931 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%0D6r3!A@t zO29gt!&ON+mGIR1FI0Vo^GB!Ds0S0UNJEL1E_R*d_=3)OB+x79`dUb#bE`J}7>tslVuz(an8q~apfekmnR*o0%JgNs zMy&gQ%d@TMgm)kP3WxDi-0LWMlj0oC;jtqc%M3IV*p!Iu4$jYnJ%mN�a#g+Ck{$ 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 T|L5uec=BS+_tY=cugL#j4&bg@ delta 4239 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 diff --git a/src/org/proxy/Main.java b/src/org/proxy/Main.java index d3e62a0..b3a315f 100644 --- a/src/org/proxy/Main.java +++ b/src/org/proxy/Main.java @@ -2,14 +2,15 @@ package org.proxy; import org.json.simple.parser.ParseException; +import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; +import java.io.*; import java.net.*; +import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.Scanner; import static javax.swing.JOptionPane.showMessageDialog; import static org.dhaverdLogs.DhaverdLogs.*; @@ -23,6 +24,18 @@ public class Main { public static TrayIcon trayIcon = null; + public static List currentProxyList = null; + + public static SystemTray tray; + public static Font trayFont; + static { + if (isLinux){ + trayFont = new Font("Tempora LGC Uni", Font.PLAIN, 16); + } else { + trayFont = new Font("Arial", Font.PLAIN, 12); + } + } + static { try { serverSocket = new ServerSocket(); @@ -85,14 +98,14 @@ public class Main { setLog(context,"System tray is unsupported!", true, false); return; } - Font trayFont; - if (isLinux){ - trayFont = new Font("Tempora LGC Uni", Font.PLAIN, 16); - } else { - trayFont = new Font("Arial", Font.PLAIN, 12); - } + List proxyList = getProxyList(); + currentProxyList = proxyList; PopupMenu trayMenu = new PopupMenu(); + MenuItem addButton = new MenuItem("Add proxy..."); + addButton.setFont(trayFont); + addButton.addActionListener(addListener()); + trayMenu.add(addButton); for (String prox : proxyList){ MenuItem proxy = new MenuItem(prox); proxy.setFont(trayFont); @@ -111,7 +124,7 @@ public class Main { icon = Toolkit.getDefaultToolkit().getImage("res" + osSeparator + "icon off.png"); trayIcon = new TrayIcon(icon, "Current proxy: " + currentProxyPub, trayMenu); trayIcon.setImageAutoSize(!isLinux); - SystemTray tray = SystemTray.getSystemTray(); + tray = SystemTray.getSystemTray(); try { tray.add(trayIcon); } catch (AWTException e) { @@ -133,6 +146,143 @@ public class Main { System.exit(0); }; } + + public static void addNewProxy(String proxy) throws IOException { + File config = getConfigFile(); + FileReader reader = new FileReader(config); + Scanner sc = new Scanner(reader); + List propsList = new ArrayList<>(); + while (sc.hasNext()){ + String line = sc.nextLine(); + propsList.add(line); + } + sc.close(); + reader.close(); + List newProps = new ArrayList<>(); + for (String prop : propsList){ + newProps.add(prop); + if (prop.contains("\"proxyList\" : [")){ + newProps.add("\t\t\"" + proxy + "\","); + } + } + /* + setLog("Add new proxy function", "New proxy list:", true, false); + for (String prop : newProps) { + setLog("Add new proxy function", prop, false, true); + } + */ + FileWriter writer = new FileWriter(config, false); + for (String prop : newProps) { + writer.write(prop + "\n"); + } + writer.close(); + } + + public static void reloadMenu() throws IOException, ParseException { + String context = "Reload tray menu"; + tray.remove(trayIcon); + List proxyList = getProxyList(); + currentProxyList = proxyList; + PopupMenu trayMenu = new PopupMenu(); + MenuItem addButton = new MenuItem("Add proxy..."); + addButton.setFont(trayFont); + addButton.addActionListener(addListener()); + trayMenu.add(addButton); + for (String prox : proxyList){ + MenuItem proxy = new MenuItem(prox); + proxy.setFont(trayFont); + proxy.addActionListener(proxyListener(prox)); + trayMenu.add(proxy); + } + MenuItem stopButton = new MenuItem("Stop"); + stopButton.setFont(trayFont); + stopButton.addActionListener(stopListener()); + trayMenu.add(stopButton); + MenuItem trayExit = new MenuItem("Exit"); + trayExit.setFont(trayFont); + trayExit.addActionListener(trayExitListener()); + trayMenu.add(trayExit); + Image icon; + icon = Toolkit.getDefaultToolkit().getImage("res" + osSeparator + "icon off.png"); + trayIcon = new TrayIcon(icon, "Current proxy: " + currentProxyPub, trayMenu); + trayIcon.setImageAutoSize(!isLinux); + try { + tray.add(trayIcon); + } catch (AWTException e) { + exeptionActions(context, e); + } + } + + public static ActionListener addListener(){ + return e -> { + // frame + JFrame frame = new JFrame("Add proxy"); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setSize(400,200); + frame.setLocationRelativeTo(null); + + //main panel + JPanel mainPanel = new JPanel(); + GridBagLayout layout = new GridBagLayout(); + mainPanel.setLayout(layout); + GridBagConstraints gbc = new GridBagConstraints(); + + //label + JLabel label = new JLabel("Proxy address:"); + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.weightx = 0.3; + gbc.gridx = 0; + gbc.gridy = 0; + gbc.insets = new Insets(10, 10, 10, 2); + mainPanel.add(label, gbc); + + //text field + JTextField proxyField = new JTextField(); + proxyField.setSize(300, 50); + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.weightx = 0.7; + gbc.gridx = 1; + gbc.gridy = 0; + gbc.gridwidth = 2; + gbc.insets = new Insets(10, 2, 10, 10); + mainPanel.add(proxyField, gbc); + + // add button + JButton addButton = new JButton("Add"); + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.gridx = 1; + gbc.gridy = 1; + gbc.gridwidth = 1; + gbc.insets = new Insets(0, 10, 10, 10); + addButton.addActionListener(al -> { + String newProxy = proxyField.getText(); + try { + setLog("Add proxy", "New proxy: " + newProxy, true, false); + addNewProxy(newProxy); + reloadMenu(); + frame.dispose(); + } catch (IOException | ParseException ex) { + exeptionActions("Add proxy", ex); + } + }); + mainPanel.add(addButton, gbc); + + //close button + JButton closeButton = new JButton("Close"); + closeButton.addActionListener(al -> { + frame.dispose(); + }); + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.gridx = 2; + gbc.gridy = 1; + gbc.gridwidth = 1; + gbc.insets = new Insets(0, 10, 10, 10); + mainPanel.add(closeButton, gbc); + frame.getContentPane().add(mainPanel); + frame.setResizable(false); + frame.setVisible(true); + }; + } public static ActionListener stopListener() { return e -> { closeThread();