diff --git a/pom.xml b/pom.xml
index ba8b6462e..346073489 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 7.23
+ 7.24
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java b/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java
index 73506edb0..b4732691c 100644
--- a/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/LinkGrabberDialog.java
@@ -326,6 +326,8 @@ public class LinkGrabberDialog extends javax.swing.JDialog implements ClipboardC
String link = i.next();
+ link = MiscTools.newMegaLinks2Legacy(link);
+
if (findFirstRegex("(?:https?|mega)://[^/]*/(#.*?)?!.+![^\r\n]+", link, 0) == null) {
i.remove();
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 949fdcd30..050feee89 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -57,7 +57,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
- public static final String VERSION = "7.23";
+ public static final String VERSION = "7.24";
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 c77f9abc6..1e1581b5c 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -945,9 +945,12 @@ public final class MainPanelView extends javax.swing.JFrame {
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
- Set urls = new HashSet(findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", dialog.getLinks_textarea().getText(), 0));
+ //Convert to legacy link format
+ String link_data = MiscTools.newMegaLinks2Legacy(dialog.getLinks_textarea().getText());
- Set megadownloader = new HashSet(findAllRegex("mega://enc[^\r\n]+", dialog.getLinks_textarea().getText(), 0));
+ Set urls = new HashSet(findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", link_data, 0));
+
+ Set megadownloader = new HashSet(findAllRegex("mega://enc[^\r\n]+", link_data, 0));
megadownloader.forEach((link) -> {
try {
@@ -959,7 +962,7 @@ public final class MainPanelView extends javax.swing.JFrame {
}
});
- Set elc = new HashSet(findAllRegex("mega://elc[^\r\n]+", dialog.getLinks_textarea().getText(), 0));
+ Set elc = new HashSet(findAllRegex("mega://elc[^\r\n]+", link_data, 0));
elc.forEach((link) -> {
try {
@@ -971,7 +974,7 @@ public final class MainPanelView extends javax.swing.JFrame {
}
});
- Set dlc = new HashSet(findAllRegex("dlc://([^\r\n]+)", dialog.getLinks_textarea().getText(), 1));
+ Set dlc = new HashSet(findAllRegex("dlc://([^\r\n]+)", link_data, 1));
dlc.stream().map((d) -> CryptTools.decryptDLC(d, _main_panel)).forEachOrdered((links) -> {
links.stream().filter((link) -> (findFirstRegex("(?:https?|mega)://[^\r\n](#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", link, 0) != null)).forEachOrdered((link) -> {
diff --git a/src/main/java/com/tonikelope/megabasterd/MiscTools.java b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
index fbeecc7b7..bccfbcb7d 100644
--- a/src/main/java/com/tonikelope/megabasterd/MiscTools.java
+++ b/src/main/java/com/tonikelope/megabasterd/MiscTools.java
@@ -797,7 +797,9 @@ public class MiscTools {
try {
- String decoded = MiscTools.findFirstRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", new String(Base64.getDecoder().decode(chunk), "UTF-8"), 0);
+ String clean_data = MiscTools.newMegaLinks2Legacy(new String(Base64.getDecoder().decode(chunk)));
+
+ String decoded = MiscTools.findFirstRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", clean_data, 0);
if (decoded != null) {
links.add(decoded);
@@ -808,9 +810,11 @@ public class MiscTools {
}
}
- links.addAll(findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", URLDecoder.decode(data, "UTF-8"), 0));
+ String clean_data = MiscTools.newMegaLinks2Legacy(URLDecoder.decode(data, "UTF-8"));
- links.addAll(findAllRegex("mega://e(n|l)c[^\r\n]+", URLDecoder.decode(data, "UTF-8"), 0));
+ links.addAll(findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", clean_data, 0));
+
+ links.addAll(findAllRegex("mega://e(n|l)c[^\r\n]+", clean_data, 0));
res = links.stream().map((s) -> s + "\n").reduce(res, String::concat);
} catch (UnsupportedEncodingException ex) {
@@ -828,9 +832,11 @@ public class MiscTools {
if (data != null) {
try {
- ArrayList links = findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", URLDecoder.decode(data, "UTF-8"), 0);
+ String clean_data = MiscTools.newMegaLinks2Legacy(URLDecoder.decode(data, "UTF-8"));
- links.addAll(findAllRegex("mega://e(n|l)c[^\r\n]+", URLDecoder.decode(data, "UTF-8"), 0));
+ ArrayList links = findAllRegex("(?:https?|mega)://[^\r\n]+(#[^\r\n!]*?)?![^\r\n!]+![^\\?\r\n]+", clean_data, 0);
+
+ links.addAll(findAllRegex("mega://e(n|l)c[^\r\n]+", clean_data, 0));
if (links.size() > 0) {
@@ -1388,6 +1394,13 @@ public class MiscTools {
}
+ public static String newMegaLinks2Legacy(String data) {
+
+ String replace1 = data.replaceAll("https://mega\\.nz/folder/([^#]+)#(.+)", "https://mega.nz/#F!$1!$2");
+
+ return replace1.replaceAll("https://mega\\.nz/file/([^#]+)#(.+)", "https://mega.nz/#!$1!$2");
+ }
+
private MiscTools() {
}
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index c148f869d..2c73c24b4 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ