diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
index b874f4ed2..3eb4064a7 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java
@@ -31,6 +31,7 @@ import java.util.logging.Logger;
*/
public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
+ public static final double SLOW_PROXY_PERC = 0.5;
private static final Logger LOG = Logger.getLogger(ChunkDownloader.class.getName());
private final int _id;
private final Download _download;
diff --git a/src/main/java/com/tonikelope/megabasterd/Download.java b/src/main/java/com/tonikelope/megabasterd/Download.java
index 0b61d56be..0946b13fc 100644
--- a/src/main/java/com/tonikelope/megabasterd/Download.java
+++ b/src/main/java/com/tonikelope/megabasterd/Download.java
@@ -1512,10 +1512,6 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
error_code = ex.getCode();
- if (error_code == -11) {
- _status_error = "ERROR: MEGA LINK BLOCKED/DELETED!";
- }
-
if (Arrays.asList(FATAL_API_ERROR_CODES).contains(error_code)) {
_auto_retry_on_error = Arrays.asList(FATAL_API_ERROR_CODES_WITH_RETRY).contains(error_code);
diff --git a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
index b3c8000ff..ffc10c15c 100644
--- a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
@@ -285,7 +285,6 @@
-
diff --git a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
index 89dbb20b7..960ec8e95 100644
--- a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
@@ -109,6 +109,10 @@ public class FileGrabberDialog extends javax.swing.JDialog {
MiscTools.GUIRunAndWait(() -> {
initComponents();
+ String upload_log_string = DBTools.selectSettingValue("upload_log");
+
+ upload_log_checkbox.setSelected("yes".equals(upload_log_string));
+
updateFonts(this, GUI_FONT, _main_panel.getZoom_factor());
updateTitledBorderFont(((javax.swing.border.TitledBorder) jPanel1.getBorder()), GUI_FONT, _main_panel.getZoom_factor());
@@ -340,7 +344,6 @@ public class FileGrabberDialog extends javax.swing.JDialog {
});
upload_log_checkbox.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N
- upload_log_checkbox.setSelected(true);
upload_log_checkbox.setText("Enable log file");
upload_log_checkbox.setDoubleBuffered(true);
upload_log_checkbox.setEnabled(false);
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index cf022923c..2ff896254 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -1122,7 +1122,7 @@ public final class MainPanel {
upload.getView().printStatusNormal("Stopping upload safely before exit MegaBasterd, please wait...");
upload.getView().getSlots_spinner().setEnabled(false);
upload.getView().getPause_button().setEnabled(false);
-
+ upload.getView().getFolder_link_button().setEnabled(false);
upload.getView().getFile_link_button().setEnabled(false);
upload.getView().getFile_size_label().setEnabled(false);
upload.getView().getFile_name_label().setEnabled(false);
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
index 1e08b74bd..2eaa545ba 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -286,7 +286,7 @@ public final class MainPanelView extends javax.swing.JFrame {
fr.write("***** MegaBasterd UPLOAD LOG FILE *****\n\n");
fr.write(MiscTools.getFechaHoraActual() + "\n\n");
fr.write(ma.getEmail() + "\n\n");
- fr.write(dir_name + "\n\n");
+ fr.write(dir_name + " " + folder_link + "\n\n");
fr.close();
} catch (IOException ex) {
Logger.getLogger(Upload.class.getName()).log(Level.SEVERE, ex.getMessage());
@@ -464,8 +464,6 @@ public final class MainPanelView extends javax.swing.JFrame {
initComponents();
- unfreeze_transferences_button.setBackground(Color.WHITE);
-
updateFonts(this, GUI_FONT, _main_panel.getZoom_factor());
translateLabels(this);
diff --git a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
index a422760db..e6ce99697 100644
--- a/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
+++ b/src/main/java/com/tonikelope/megabasterd/MegaAPI.java
@@ -1031,7 +1031,6 @@ public class MegaAPI implements Serializable {
return genRandomByteArray(16);
}
- //OJO A ESTO, HAY QUE ACTUALIZAR ESTO CON EL ANILLO DE CLAVES Y LA ACTUALIZACIÓN DE SEGURIDAD DE MEGA de 2023 (PENDIENTE)
public String shareFolder(String node, byte[] node_key, byte[] share_key) {
try {
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
index 5415682bd..6d465ce64 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
@@ -3098,6 +3098,10 @@ public class SettingsDialog extends javax.swing.JDialog {
this.upload_public_folder_checkbox.setBackground(this.upload_public_folder_checkbox.isSelected() ? java.awt.Color.RED : null);
this.public_folder_panel.setVisible(this.upload_public_folder_checkbox.isSelected());
+
+ revalidate();
+
+ repaint();
}//GEN-LAST:event_upload_public_folder_checkboxActionPerformed
diff --git a/src/main/java/com/tonikelope/megabasterd/Transference.java b/src/main/java/com/tonikelope/megabasterd/Transference.java
index 3e08c003e..134dfd578 100644
--- a/src/main/java/com/tonikelope/megabasterd/Transference.java
+++ b/src/main/java/com/tonikelope/megabasterd/Transference.java
@@ -25,7 +25,7 @@ public interface Transference {
int HTTP_READ_TIMEOUT = 60000;
int MAX_SIM_TRANSFERENCES = 50;
int SIM_TRANSFERENCES_DEFAULT = 4;
- int PROGRESS_WATCHDOG_TIMEOUT = 300;
+ int PROGRESS_WATCHDOG_TIMEOUT = 600;
boolean LIMIT_TRANSFERENCE_SPEED_DEFAULT = false;
int MAX_TRANSFERENCE_SPEED_DEFAULT = 5;
int MAX_WAIT_WORKERS_SHUTDOWN = 15;
diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.form b/src/main/java/com/tonikelope/megabasterd/UploadView.form
index 91d7d8b5f..015b6986d 100644
--- a/src/main/java/com/tonikelope/megabasterd/UploadView.form
+++ b/src/main/java/com/tonikelope/megabasterd/UploadView.form
@@ -31,7 +31,11 @@
-
+
+
+
+
+
@@ -64,7 +68,7 @@
-
+
@@ -102,9 +106,13 @@
-
-
-
+
+
+
+
+
+
+
@@ -277,6 +285,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -358,5 +380,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.java b/src/main/java/com/tonikelope/megabasterd/UploadView.java
index 74abe42f2..ee0950e4a 100644
--- a/src/main/java/com/tonikelope/megabasterd/UploadView.java
+++ b/src/main/java/com/tonikelope/megabasterd/UploadView.java
@@ -93,6 +93,14 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
return file_link_button;
}
+ public JButton getFolder_link_button() {
+ return folder_link_button;
+ }
+
+ public JButton getOpen_browser_button() {
+ return open_browser_button;
+ }
+
public JLabel getStatus_label() {
return status_label;
}
@@ -162,12 +170,14 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
restart_button = new javax.swing.JButton();
file_size_label = new javax.swing.JLabel();
slot_status_label = new javax.swing.JLabel();
+ folder_link_button = new javax.swing.JButton();
file_link_button = new javax.swing.JButton();
queue_up_button = new javax.swing.JButton();
queue_down_button = new javax.swing.JButton();
cbc_label = new javax.swing.JLabel();
queue_top_button = new javax.swing.JButton();
queue_bottom_button = new javax.swing.JButton();
+ open_browser_button = new javax.swing.JButton();
setBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 204, 255), 3, true));
@@ -253,6 +263,15 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
slot_status_label.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
slot_status_label.setDoubleBuffered(true);
+ folder_link_button.setFont(new java.awt.Font("Dialog", 1, 16)); // NOI18N
+ folder_link_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-copy-to-clipboard-30.png"))); // NOI18N
+ folder_link_button.setText("Copy folder link");
+ folder_link_button.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ folder_link_buttonActionPerformed(evt);
+ }
+ });
+
file_link_button.setFont(new java.awt.Font("Dialog", 1, 16)); // NOI18N
file_link_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-copy-to-clipboard-30.png"))); // NOI18N
file_link_button.setText("Copy file link");
@@ -302,6 +321,16 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
}
});
+ open_browser_button.setFont(new java.awt.Font("Dialog", 1, 16)); // NOI18N
+ open_browser_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-export-30.png"))); // NOI18N
+ open_browser_button.setText("Open folder in browser");
+ open_browser_button.setDoubleBuffered(true);
+ open_browser_button.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ open_browser_buttonActionPerformed(evt);
+ }
+ });
+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
@@ -312,7 +341,11 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
.addComponent(progress_pbar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(file_size_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(open_browser_button)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(folder_link_button)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(file_link_button))
.addGroup(layout.createSequentialGroup()
.addComponent(file_name_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@@ -340,7 +373,7 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
.addComponent(queue_bottom_button)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
- .addComponent(status_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(status_label, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(cbc_label)))
.addGap(18, 18, 18)
@@ -369,9 +402,12 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
.addComponent(file_name_label)
.addComponent(slot_status_label))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(file_link_button)
- .addComponent(file_size_label))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(open_browser_button)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(folder_link_button)
+ .addComponent(file_link_button)
+ .addComponent(file_size_label)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(progress_pbar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -432,6 +468,19 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
});
}
+ private void folder_link_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_folder_link_buttonActionPerformed
+
+ folder_link_button.setEnabled(false);
+
+ folder_link_button.setText(LabelTranslatorSingleton.getInstance().translate("Please wait..."));
+
+ copyTextToClipboard(_upload.getFolder_link());
+
+ folder_link_button.setText(LabelTranslatorSingleton.getInstance().translate("Copy folder link"));
+
+ folder_link_button.setEnabled(true);
+ }//GEN-LAST:event_folder_link_buttonActionPerformed
+
private void file_link_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_file_link_buttonActionPerformed
file_link_button.setEnabled(false);
@@ -497,6 +546,11 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
});
}//GEN-LAST:event_queue_bottom_buttonActionPerformed
+ private void open_browser_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_open_browser_buttonActionPerformed
+ // TODO add your handling code here:
+ MiscTools.openBrowserURL(_upload.getFolder_link());
+ }//GEN-LAST:event_open_browser_buttonActionPerformed
+
public void updateCBC(String status) {
MiscTools.GUIRunAndWait(() -> {
@@ -648,6 +702,8 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView {
private javax.swing.JButton file_link_button;
private javax.swing.JLabel file_name_label;
private javax.swing.JLabel file_size_label;
+ private javax.swing.JButton folder_link_button;
+ private javax.swing.JButton open_browser_button;
private javax.swing.JButton pause_button;
private javax.swing.JProgressBar progress_pbar;
private javax.swing.JButton queue_bottom_button;