From 801fa5c61f163e3981ee9a8207688857ac1a27f6 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Thu, 9 May 2019 19:42:05 -0400 Subject: [PATCH 1/2] Added a POC for controling ripme via tcp socket --- src/main/java/com/rarchives/ripme/App.java | 40 +++++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/App.java b/src/main/java/com/rarchives/ripme/App.java index 4749d7c23..eb6a2829d 100644 --- a/src/main/java/com/rarchives/ripme/App.java +++ b/src/main/java/com/rarchives/ripme/App.java @@ -1,13 +1,11 @@ package com.rarchives.ripme; import java.awt.*; -import java.io.File; -import java.io.IOException; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.FileNotFoundException; +import java.io.*; import java.net.MalformedURLException; +import java.net.ServerSocket; +import java.net.Socket; import java.net.URL; import java.util.Arrays; import java.util.List; @@ -44,6 +42,33 @@ public class App { public static String stringToAppendToFoldername = null; private static final History HISTORY = new History(); + public static class IPCThread implements Runnable { + public void run() { + String dataFromProcess; + String capitalizedSentence; + try { + ServerSocket welcomeSocket = new ServerSocket(6789); + while (true) { + Socket connectionSocket = welcomeSocket.accept(); + BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); + + DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); + dataFromProcess = inFromClient.readLine(); + System.out.println("Received: " + dataFromProcess); + capitalizedSentence = dataFromProcess.toUpperCase() + 'n'; + outToClient.writeBytes(capitalizedSentence); + rip(new URL(dataFromProcess)); + welcomeSocket.close(); + } + } catch(IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + /** * Where everything starts. Takes in, and tries to parse as many commandline arguments as possible. * Otherwise, it launches a GUI. @@ -73,6 +98,11 @@ public static void main(String[] args) throws MalformedURLException { if (GraphicsEnvironment.isHeadless() || args.length > 0) { handleArguments(args); } else { + logger.info("Starting IPC thread..."); + IPCThread ipcThread = new IPCThread(); + Thread t = new Thread(ipcThread); + t.start(); + logger.info("IPC thread started"); if (SystemUtils.IS_OS_MAC_OSX) { System.setProperty("apple.laf.useScreenMenuBar", "true"); System.setProperty("com.apple.mrj.application.apple.menu.about.name", "RipMe"); From de8384ae951b99a43c5d488d79ed148e88f6bb79 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Fri, 10 May 2019 17:22:09 -0400 Subject: [PATCH 2/2] GUI now updates when a url is added from TCP --- src/main/java/com/rarchives/ripme/App.java | 2 +- src/main/java/com/rarchives/ripme/ui/MainWindow.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/App.java b/src/main/java/com/rarchives/ripme/App.java index eb6a2829d..07e6af8af 100644 --- a/src/main/java/com/rarchives/ripme/App.java +++ b/src/main/java/com/rarchives/ripme/App.java @@ -57,7 +57,7 @@ public void run() { System.out.println("Received: " + dataFromProcess); capitalizedSentence = dataFromProcess.toUpperCase() + 'n'; outToClient.writeBytes(capitalizedSentence); - rip(new URL(dataFromProcess)); + MainWindow.queueListModel.add(MainWindow.queueListModel.size(), dataFromProcess); welcomeSocket.close(); } } catch(IOException e) { diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index e97e915ad..3f18806bf 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -100,7 +100,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { // Queue public static JButton optionQueue; private static JPanel queuePanel; - private static DefaultListModel queueListModel; + public static DefaultListModel queueListModel; // Configuration private static JButton optionConfiguration;