diff --git a/pom.xml b/pom.xml index f010c4ee1..98c0679d7 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.tonikelope MegaBasterd - 7.43 + 7.44 jar diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java index 97b23ac3a..358a68c60 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java @@ -60,7 +60,7 @@ */ public final class MainPanel { - public static final String VERSION = "7.43"; + public static final String VERSION = "7.44"; public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java index c1c67a954..4c50c8c2c 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java @@ -329,6 +329,7 @@ private void _new_upload_dialog(FileGrabberDialog dialog) { LOG.log(SEVERE, null, ex); } + }; getMain_panel().getUpload_manager().getTransference_preprocess_queue().add(run); diff --git a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java index 2a5ba79f1..cc4ae42cf 100644 --- a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java +++ b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java @@ -22,6 +22,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLException; /** * @@ -495,6 +496,12 @@ private String _rawRequest(String request, URL url_api) throws MegaAPIException } + } catch (SSLException ssl_ex) { + + empty_response = true; + + Logger.getLogger(MegaAPI.class.getName()).log(Level.SEVERE, ssl_ex.getMessage()); + } catch (IOException ex) { Logger.getLogger(MegaAPI.class.getName()).log(Level.SEVERE, ex.getMessage()); @@ -925,7 +932,7 @@ public String cryptoHandleauth(String h) { public HashMap getFolderNodes(String folder_id, String folder_key) throws Exception { - HashMap folder_nodes; + HashMap folder_nodes = null; String request = "[{\"a\":\"f\", \"c\":\"1\", \"r\":\"1\"}]"; @@ -933,62 +940,69 @@ public HashMap getFolderNodes(String folder_id, String folder_ke String res = _rawRequest(request, url_api); - ObjectMapper objectMapper = new ObjectMapper(); + if (res != null) { - HashMap[] res_map = objectMapper.readValue(res, HashMap[].class); + ObjectMapper objectMapper = new ObjectMapper(); - folder_nodes = new HashMap<>(); + HashMap[] res_map = objectMapper.readValue(res, HashMap[].class); - for (Object o : (Iterable) res_map[0].get("f")) { + folder_nodes = new HashMap<>(); - HashMap node = (HashMap) o; + for (Object o : (Iterable) res_map[0].get("f")) { - String[] node_k = ((String) node.get("k")).split(":"); + HashMap node = (HashMap) o; - if (node_k.length == 2 && node_k[0] != "" && node_k[1] != "") { + String[] node_k = ((String) node.get("k")).split(":"); - try { + if (node_k.length == 2 && node_k[0] != "" && node_k[1] != "") { - String dec_node_k = Bin2UrlBASE64(decryptKey(UrlBASE642Bin(node_k[1]), _urlBase64KeyDecode(folder_key))); + try { - HashMap at = _decAttr((String) node.get("a"), _urlBase64KeyDecode(dec_node_k)); + String dec_node_k = Bin2UrlBASE64(decryptKey(UrlBASE642Bin(node_k[1]), _urlBase64KeyDecode(folder_key))); - HashMap the_node = new HashMap<>(); + HashMap at = _decAttr((String) node.get("a"), _urlBase64KeyDecode(dec_node_k)); - the_node.put("type", node.get("t")); + HashMap the_node = new HashMap<>(); - the_node.put("parent", node.get("p")); + the_node.put("type", node.get("t")); - the_node.put("key", dec_node_k); + the_node.put("parent", node.get("p")); - if (node.get("s") != null) { + the_node.put("key", dec_node_k); - if (node.get("s") instanceof Integer) { + if (node.get("s") != null) { - long size = ((Number) node.get("s")).longValue(); - the_node.put("size", size); + if (node.get("s") instanceof Integer) { - } else if (node.get("s") instanceof Long) { + long size = ((Number) node.get("s")).longValue(); + the_node.put("size", size); - long size = (Long) node.get("s"); - the_node.put("size", size); + } else if (node.get("s") instanceof Long) { + + long size = (Long) node.get("s"); + the_node.put("size", size); + } } - } - the_node.put("name", at.get("n")); + the_node.put("name", at.get("n")); - the_node.put("h", node.get("h")); + the_node.put("h", node.get("h")); - folder_nodes.put((String) node.get("h"), the_node); + folder_nodes.put((String) node.get("h"), the_node); + + } catch (Exception e) { + LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k")); + } - } catch (Exception e) { + } else { LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k")); } - } else { - LOG.log(Level.WARNING, "WARNING: node key is not valid " + (String) node.get("k")); } + } else { + + throw new Exception(); } return folder_nodes; diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java index 709e257d1..39dca5baf 100644 --- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java +++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java @@ -423,51 +423,27 @@ public static void pausar(long pause) { public static void GUIRun(Runnable r) { - boolean ok; - - do { - ok = true; - - try { - if (!SwingUtilities.isEventDispatchThread()) { - SwingUtilities.invokeLater(r); - } else { - r.run(); - } - } catch (Exception ex) { - ok = false; - Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex); - MiscTools.pausar(250); - } + if (!SwingUtilities.isEventDispatchThread()) { + SwingUtilities.invokeLater(r); + } else { + r.run(); + } - } while (!ok); } public static void GUIRunAndWait(Runnable r) { - boolean ok; - - do { - ok = true; - try { - if (!SwingUtilities.isEventDispatchThread()) { - SwingUtilities.invokeAndWait(r); - } else { - r.run(); - } - } catch (Exception ex) { - ok = false; - Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex); - MiscTools.pausar(250); + try { + if (!SwingUtilities.isEventDispatchThread()) { + SwingUtilities.invokeAndWait(r); + } else { + r.run(); } - } while (!ok); - } - - public static void threadRun(Runnable r) { + } catch (Exception ex) { - Thread hilo = new Thread(r); + Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, null, ex); - hilo.start(); + } } diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png index 4ed5223dc..7dc2ba626 100644 Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ