From 57932c58a39981ad1ece3861b09646db3ea4f81e Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Wed, 18 Oct 2017 21:58:50 -0500 Subject: [PATCH] Implement Github API file size detection. --- sigIRCv2.jar | Bin 3391012 -> 3392658 bytes src/sig/UpdateEvent.java | 3 ++- src/sig/modules/ChatLogModule.java | 4 ++-- src/sig/sigIRC.java | 37 ++++++++++++++++++++--------- src/sig/utils/FileUtils.java | 20 ++++++++++++++++ src/sig/utils/GithubUtils.java | 35 +++++++++++++++++++++++++++ 6 files changed, 85 insertions(+), 14 deletions(-) create mode 100644 src/sig/utils/GithubUtils.java diff --git a/sigIRCv2.jar b/sigIRCv2.jar index 71ca90786d8da22df999d939c89267dae6e71a42..f942a52786d1eeedf73fdf7b4524732b45545dd1 100644 GIT binary patch delta 47584 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 z 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 diff --git a/src/sig/UpdateEvent.java b/src/sig/UpdateEvent.java index d4d34c4..8dac57a 100644 --- a/src/sig/UpdateEvent.java +++ b/src/sig/UpdateEvent.java @@ -15,7 +15,7 @@ public class UpdateEvent implements ActionListener{ final static int MSGTIMER = 300; final static int AUTOSAVETIMER = 600; int last_authentication_msg = MSGTIMER; - int last_autosave = AUTOSAVETIMER; + int last_autosave = AUTOSAVETIMER; long lasttime = System.currentTimeMillis(); int avgfps = 30; int counter = 0; @@ -38,6 +38,7 @@ public class UpdateEvent implements ActionListener{ public void run() { JSONObject data = GetSubEmoteJson(); sigIRC.downloadSubEmotes(data); + sigIRC.subEmotesCompleted=true; } }; downloadThread.start(); diff --git a/src/sig/modules/ChatLogModule.java b/src/sig/modules/ChatLogModule.java index 4c90db5..d48c88a 100644 --- a/src/sig/modules/ChatLogModule.java +++ b/src/sig/modules/ChatLogModule.java @@ -50,9 +50,9 @@ public class ChatLogModule extends Module{ public void run() { super.run(); - if (delay>0) { + if (delay>0 && sigIRC.subEmotesCompleted) { delay--; - } else + } else if (!initialized) { Initialize(); diff --git a/src/sig/sigIRC.java b/src/sig/sigIRC.java index ace920e..32b2eb5 100644 --- a/src/sig/sigIRC.java +++ b/src/sig/sigIRC.java @@ -19,6 +19,7 @@ import sig.modules.TwitchModule; import sig.modules.ChatLog.ChatLogMessage; import sig.modules.ChatLog.ChatLogTwitchEmote; import sig.utils.FileUtils; +import sig.utils.GithubUtils; import sig.utils.TextUtils; import java.awt.Color; @@ -124,11 +125,13 @@ public class sigIRC{ public final static String SUBEMOTELISTFILE = "sigIRC/subemotes.json"; public static long channel_id = -1; public static int lastSubEmoteUpdate = -1; + public static boolean autoUpdateProgram = true; public static int subchannelCount = 0; public static HashMap subchannelIds = new HashMap(); public static boolean downloadedSubEmotes=false; + public static boolean subEmotesCompleted=false; static int lastWindowX = 0; static int lastWindowY = 0; @@ -181,6 +184,7 @@ public class sigIRC{ chatlogmodule_height = config.getInteger("CHATLOG_module_height",312); chatlogMessageHistory = config.getInteger("CHATLOG_module_MessageHistory",50); hardwareAcceleration = config.getBoolean("hardware_acceleration",true); + autoUpdateProgram = config.getBoolean("Automatically_Update_Program", true); lastSubEmoteUpdate = config.getInteger("lastSubEmote_APIUpdate",Calendar.getInstance().get(Calendar.DAY_OF_YEAR)); manager.setClientId("o4c2x0l3e82scgar4hpxg6m5dfjbem"); //System.out.println(manager.auth().hasAccessToken()); @@ -229,8 +233,11 @@ public class sigIRC{ manager = new FileManager("sigIRC/logs/",true); manager.verifyAndFetchFileFromServer(); manager = new FileManager("sigIRC/sounds/",true); manager.verifyAndFetchFileFromServer(); //manager = new FileManager("sigIRC/sounds/Glaceon_cry.wav"); manager.verifyAndFetchFileFromServer(); - manager = new FileManager("sigIRC/follower_sounds/Glaceon_cry.wav"); manager.verifyAndFetchFileFromServer(); - manager = new FileManager("sigIRC/follower_sounds/README.txt"); manager.verifyAndFetchFileFromServer(); + File follower_sounds_folder = new File(BASEDIR+"sigIRC/follower_sounds"); + if (!follower_sounds_folder.exists()) { + manager = new FileManager("sigIRC/follower_sounds/Glaceon_cry.wav"); manager.verifyAndFetchFileFromServer(); + manager = new FileManager("sigIRC/follower_sounds/README.txt"); manager.verifyAndFetchFileFromServer(); + } manager = new FileManager("sigIRC/record"); manager.verifyAndFetchFileFromServer(); manager = new FileManager("sigIRC/glaceon_follower.png"); manager.verifyAndFetchFileFromServer(); manager = new FileManager("sigIRC/sigIRCicon.png"); manager.verifyAndFetchFileFromServer(); @@ -253,16 +260,24 @@ public class sigIRC{ } private static void DownloadProgramUpdate() { - File updatedir = new File(sigIRC.BASEDIR+"sigIRC/updates/"); - updatedir.mkdirs(); - File programFile = new File(sigIRC.BASEDIR+"sigIRC/updates/sigIRCv2.jar"); - try { - if (programFile.exists()) { - programFile.delete(); + //System.out.println("Last commit size was "+GithubUtils.getSizeOfFileFromLatestGithubCommit("sigIRCv2.jar")+"B"); + if (autoUpdateProgram) { + File updatedir = new File(sigIRC.BASEDIR+"sigIRC/updates/"); + updatedir.mkdirs(); + File programFile = new File(sigIRC.BASEDIR+"sigIRC/updates/sigIRCv2.jar"); + System.out.println("File size is "+programFile.length()); + long fileSize = GithubUtils.getSizeOfFileFromLatestGithubCommit("sigIRCv2.jar"); + System.out.println("File size on Github is "+fileSize); + if ((programFile.exists() && fileSize!=programFile.length()) || !programFile.exists()) { + try { + if (programFile.exists()) { + programFile.delete(); + } + org.apache.commons.io.FileUtils.copyURLToFile(new URL(sigIRC.PROGRAM_EXECUTABLE_URL),programFile); + } catch (IOException e) { + e.printStackTrace(); + } } - org.apache.commons.io.FileUtils.copyURLToFile(new URL(sigIRC.PROGRAM_EXECUTABLE_URL),programFile); - } catch (IOException e) { - e.printStackTrace(); } } diff --git a/src/sig/utils/FileUtils.java b/src/sig/utils/FileUtils.java index f48bb15..95e06b8 100644 --- a/src/sig/utils/FileUtils.java +++ b/src/sig/utils/FileUtils.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -186,6 +187,10 @@ public class FileUtils { public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { return readJsonFromUrl(url,null,false); } + + public static JSONArray readJsonArrayFromUrl(String url) throws IOException, JSONException { + return readJsonArrayFromUrl(url,null,false); + } public static JSONObject readJsonFromFile(String file) throws IOException, JSONException { InputStream is = new FileInputStream(new File(file)); @@ -214,6 +219,21 @@ public class FileUtils { is.close(); } } + + public static JSONArray readJsonArrayFromUrl(String url, String file, boolean writeToFile) throws IOException, JSONException { + InputStream is = new URL(url).openStream(); + try { + BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); + String jsonText = readAll(rd); + if (writeToFile) { + writetoFile(new String[]{jsonText},file); + } + JSONArray json = new JSONArray(jsonText); + return json; + } finally { + is.close(); + } + } public static void logToFile(String message, String filename) { File file = new File(filename); diff --git a/src/sig/utils/GithubUtils.java b/src/sig/utils/GithubUtils.java new file mode 100644 index 0000000..127d081 --- /dev/null +++ b/src/sig/utils/GithubUtils.java @@ -0,0 +1,35 @@ +package sig.utils; + +import java.io.IOException; +import java.util.Arrays; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class GithubUtils { + public static int getSizeOfFileFromLatestGithubCommit(String filename) { + try { + JSONObject data = FileUtils.readJsonFromUrl("https://api.github.com/repos/sigonasr2/sigIRCv2"); + String url = data.getString("commits_url").replace("{/sha}", ""); + JSONArray data_array = FileUtils.readJsonArrayFromUrl(url); + JSONObject dat = data_array.getJSONObject(0); + JSONObject datapoint1 = dat.getJSONObject("commit"); + datapoint1 = datapoint1.getJSONObject("tree"); + url = datapoint1.getString("url"); + data = FileUtils.readJsonFromUrl(url); + data_array = data.getJSONArray("tree"); + for (int i=0;i