Fix trayicon popupmenu on multi screen (linux)
RUN EXTERNAL COMMAND TIMEOUT CHANGED FROM 10 minutes -> 2 minutes
Max slots changed from 20 -> 30 (useful for smartproxy auto turbo mode)
This commit is contained in:
tonikelope 2023-10-11 17:48:41 +02:00
parent ea50cfdc16
commit 689a98dda5
6 changed files with 410 additions and 395 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.tonikelope</groupId> <groupId>com.tonikelope</groupId>
<artifactId>MegaBasterd</artifactId> <artifactId>MegaBasterd</artifactId>
<version>7.77</version> <version>7.78</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<repositories> <repositories>
<repository> <repository>

View File

@ -31,7 +31,6 @@ import java.util.logging.Logger;
*/ */
public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { 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 static final Logger LOG = Logger.getLogger(ChunkDownloader.class.getName());
private final int _id; private final int _id;
private final Download _download; private final Download _download;
@ -184,6 +183,8 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable {
MainPanel.run_external_command(); MainPanel.run_external_command();
} else if (http_error != 509 && MainPanel.isRun_command() && MainPanel.LAST_TIMESTAMP_EXTERNAL_COMMAND != -1) {
MainPanel.LAST_TIMESTAMP_EXTERNAL_COMMAND = -1;
} }
if ((_current_smart_proxy != null || http_error == 509) && MainPanel.isUse_smart_proxy() && !MainPanel.isUse_proxy()) { if ((_current_smart_proxy != null || http_error == 509) && MainPanel.isUse_smart_proxy() && !MainPanel.isUse_proxy()) {

View File

@ -1512,6 +1512,10 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
error_code = ex.getCode(); 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)) { 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); _auto_retry_on_error = Arrays.asList(FATAL_API_ERROR_CODES_WITH_RETRY).contains(error_code);

View File

@ -18,13 +18,12 @@ import java.awt.Color;
import static java.awt.EventQueue.invokeLater; import static java.awt.EventQueue.invokeLater;
import java.awt.Font; import java.awt.Font;
import static java.awt.Frame.NORMAL; import static java.awt.Frame.NORMAL;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import static java.awt.SystemTray.getSystemTray; import static java.awt.SystemTray.getSystemTray;
import static java.awt.Toolkit.getDefaultToolkit; import static java.awt.Toolkit.getDefaultToolkit;
import java.awt.TrayIcon; import java.awt.TrayIcon;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import static java.awt.event.WindowEvent.WINDOW_CLOSING; import static java.awt.event.WindowEvent.WINDOW_CLOSING;
import java.io.File; import java.io.File;
@ -53,11 +52,14 @@ import static java.util.concurrent.Executors.newCachedThreadPool;
import java.util.logging.Level; import java.util.logging.Level;
import static java.util.logging.Level.SEVERE; import static java.util.logging.Level.SEVERE;
import java.util.logging.Logger; import java.util.logging.Logger;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.QUESTION_MESSAGE; import static javax.swing.JOptionPane.QUESTION_MESSAGE;
import static javax.swing.JOptionPane.WARNING_MESSAGE; import static javax.swing.JOptionPane.WARNING_MESSAGE;
import static javax.swing.JOptionPane.YES_NO_CANCEL_OPTION; import static javax.swing.JOptionPane.YES_NO_CANCEL_OPTION;
import static javax.swing.JOptionPane.showOptionDialog; import static javax.swing.JOptionPane.showOptionDialog;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import javax.swing.UIDefaults; import javax.swing.UIDefaults;
import javax.swing.UIManager; import javax.swing.UIManager;
@ -67,14 +69,14 @@ import javax.swing.UIManager;
*/ */
public final class MainPanel { public final class MainPanel {
public static final String VERSION = "7.77"; public static final String VERSION = "7.78";
public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY 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 THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
public static final int STREAMER_PORT = 1337; public static final int STREAMER_PORT = 1337;
public static final int WATCHDOG_PORT = 1338; public static final int WATCHDOG_PORT = 1338;
public static final int DEFAULT_MEGA_PROXY_PORT = 9999; public static final int DEFAULT_MEGA_PROXY_PORT = 9999;
public static final int RUN_COMMAND_TIME = 600; public static final int RUN_COMMAND_TIME = 120;
public static final String DEFAULT_LANGUAGE = "EN"; public static final String DEFAULT_LANGUAGE = "EN";
public static final boolean DEFAULT_SMART_PROXY = false; public static final boolean DEFAULT_SMART_PROXY = false;
public static final double FORCE_GARBAGE_COLLECTION_MAX_MEMORY_PERCENT = 0.7; public static final double FORCE_GARBAGE_COLLECTION_MAX_MEMORY_PERCENT = 0.7;
@ -98,7 +100,7 @@ public final class MainPanel {
private static String _new_version; private static String _new_version;
private static Boolean _resume_uploads; private static Boolean _resume_uploads;
private static Boolean _resume_downloads; private static Boolean _resume_downloads;
private static long _last_run_command; public static volatile long LAST_TIMESTAMP_EXTERNAL_COMMAND;
private static final Logger LOG = Logger.getLogger(MainPanel.class.getName()); private static final Logger LOG = Logger.getLogger(MainPanel.class.getName());
private static volatile boolean CHECK_RUNNING = true; private static volatile boolean CHECK_RUNNING = true;
@ -225,7 +227,7 @@ public final class MainPanel {
_exit = false; _exit = false;
_last_run_command = -1; LAST_TIMESTAMP_EXTERNAL_COMMAND = -1;
_restart = false; _restart = false;
@ -812,7 +814,7 @@ public final class MainPanel {
_run_command_path = DBTools.selectSettingValue("run_command_path"); _run_command_path = DBTools.selectSettingValue("run_command_path");
if (_run_command && old_run_command_path != null && !old_run_command_path.equals(_run_command_path)) { if (_run_command && old_run_command_path != null && !old_run_command_path.equals(_run_command_path)) {
_last_run_command = -1; LAST_TIMESTAMP_EXTERNAL_COMMAND = -1;
} }
String use_megacrypter_reverse = selectSettingValue("megacrypter_reverse"); String use_megacrypter_reverse = selectSettingValue("megacrypter_reverse");
@ -866,7 +868,7 @@ public final class MainPanel {
public static synchronized void run_external_command() { public static synchronized void run_external_command() {
if (_run_command && (_last_run_command == -1 || _last_run_command + RUN_COMMAND_TIME * 1000 < System.currentTimeMillis())) { if (_run_command && (LAST_TIMESTAMP_EXTERNAL_COMMAND == -1 || LAST_TIMESTAMP_EXTERNAL_COMMAND + RUN_COMMAND_TIME * 1000 < System.currentTimeMillis())) {
if (_run_command_path != null && !_run_command_path.equals("")) { if (_run_command_path != null && !_run_command_path.equals("")) {
try { try {
@ -875,7 +877,7 @@ public final class MainPanel {
Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage()); Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, ex.getMessage());
} }
_last_run_command = System.currentTimeMillis(); LAST_TIMESTAMP_EXTERNAL_COMMAND = System.currentTimeMillis();
} }
} }
} }
@ -1355,16 +1357,16 @@ public final class MainPanel {
if (java.awt.SystemTray.isSupported()) { if (java.awt.SystemTray.isSupported()) {
PopupMenu menu = new PopupMenu(); JPopupMenu menu = new JPopupMenu();
Font new_font = GUI_FONT; Font new_font = GUI_FONT;
menu.setFont(new_font.deriveFont(Font.BOLD, Math.round(14 * ZOOM_FACTOR))); menu.setFont(new_font.deriveFont(Font.BOLD, Math.round(14 * ZOOM_FACTOR)));
MenuItem messageItem = new MenuItem(LabelTranslatorSingleton.getInstance().translate("Restore window")); JMenuItem messageItem = new JMenuItem(LabelTranslatorSingleton.getInstance().translate("Restore window"));
messageItem.addActionListener((ActionEvent e) -> { messageItem.addActionListener((ActionEvent e) -> {
MiscTools.GUIRun(() -> {
getView().setExtendedState(NORMAL); getView().setExtendedState(NORMAL);
getView().setVisible(true); getView().setVisible(true);
@ -1372,12 +1374,12 @@ public final class MainPanel {
getView().revalidate(); getView().revalidate();
getView().repaint(); getView().repaint();
});
}); });
menu.add(messageItem); menu.add(messageItem);
MenuItem closeItem = new MenuItem(LabelTranslatorSingleton.getInstance().translate("EXIT")); JMenuItem closeItem = new JMenuItem(LabelTranslatorSingleton.getInstance().translate("EXIT"));
closeItem.addActionListener((ActionEvent e) -> { closeItem.addActionListener((ActionEvent e) -> {
if (!getView().isVisible()) { if (!getView().isVisible()) {
@ -1394,8 +1396,20 @@ public final class MainPanel {
menu.add(closeItem); menu.add(closeItem);
ActionListener actionListener = (ActionEvent e) -> { _trayicon = new TrayIcon(getDefaultToolkit().getImage(getClass().getResource(ICON_FILE)), "MegaBasterd", null);
MiscTools.GUIRun(() -> {
_trayicon.setToolTip("MegaBasterd " + VERSION);
_trayicon.setImageAutoSize(true);
_trayicon.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
menu.setLocation(e.getX(), e.getY());
menu.setInvoker(menu);
menu.setVisible(true);
} else {
if (!getView().isVisible()) { if (!getView().isVisible()) {
getView().setExtendedState(NORMAL); getView().setExtendedState(NORMAL);
getView().setVisible(true); getView().setVisible(true);
@ -1406,16 +1420,10 @@ public final class MainPanel {
getView().dispatchEvent(new WindowEvent(getView(), WINDOW_CLOSING)); getView().dispatchEvent(new WindowEvent(getView(), WINDOW_CLOSING));
} }
}
}
}); });
};
_trayicon = new TrayIcon(getDefaultToolkit().getImage(getClass().getResource(ICON_FILE)), "MegaBasterd", menu);
_trayicon.setToolTip("MegaBasterd " + VERSION);
_trayicon.setImageAutoSize(true);
_trayicon.addActionListener(actionListener);
getSystemTray().add(_trayicon); getSystemTray().add(_trayicon);

View File

@ -435,6 +435,8 @@ public final class MainPanelView extends javax.swing.JFrame {
initComponents(); initComponents();
unfreeze_transferences_button.setBackground(Color.WHITE);
updateFonts(this, GUI_FONT, _main_panel.getZoom_factor()); updateFonts(this, GUI_FONT, _main_panel.getZoom_factor());
translateLabels(this); translateLabels(this);

View File

@ -18,14 +18,14 @@ import java.util.concurrent.ConcurrentLinkedQueue;
public interface Transference { public interface Transference {
int MIN_WORKERS = 1; int MIN_WORKERS = 1;
int MAX_WORKERS = 20; int MAX_WORKERS = 30;
int HTTP_PROXY_CONNECT_TIMEOUT = 20000; int HTTP_PROXY_CONNECT_TIMEOUT = 20000;
int HTTP_PROXY_READ_TIMEOUT = 20000; int HTTP_PROXY_READ_TIMEOUT = 20000;
int HTTP_CONNECT_TIMEOUT = 60000; int HTTP_CONNECT_TIMEOUT = 60000;
int HTTP_READ_TIMEOUT = 60000; int HTTP_READ_TIMEOUT = 60000;
int MAX_SIM_TRANSFERENCES = 50; int MAX_SIM_TRANSFERENCES = 50;
int SIM_TRANSFERENCES_DEFAULT = 4; int SIM_TRANSFERENCES_DEFAULT = 4;
int PROGRESS_WATCHDOG_TIMEOUT = 600; int PROGRESS_WATCHDOG_TIMEOUT = 300;
boolean LIMIT_TRANSFERENCE_SPEED_DEFAULT = false; boolean LIMIT_TRANSFERENCE_SPEED_DEFAULT = false;
int MAX_TRANSFERENCE_SPEED_DEFAULT = 5; int MAX_TRANSFERENCE_SPEED_DEFAULT = 5;
int MAX_WAIT_WORKERS_SHUTDOWN = 15; int MAX_WAIT_WORKERS_SHUTDOWN = 15;