From f56d60bb79045cf15f7a1429eb23cfe36739fb3f Mon Sep 17 00:00:00 2001 From: tonikelope Date: Mon, 27 Nov 2017 22:57:56 +0100 Subject: [PATCH] 2.30 --- src/megabasterd/ChunkDownloader.java | 45 +- src/megabasterd/ChunkDownloaderMono.java | 33 +- src/megabasterd/MainPanel.java | 2 +- src/megabasterd/SettingsDialog.form | 2062 +++++++++++----------- src/megabasterd/SettingsDialog.java | 73 +- 5 files changed, 1156 insertions(+), 1059 deletions(-) diff --git a/src/megabasterd/ChunkDownloader.java b/src/megabasterd/ChunkDownloader.java index 6609d0370..3ed113ce5 100644 --- a/src/megabasterd/ChunkDownloader.java +++ b/src/megabasterd/ChunkDownloader.java @@ -20,14 +20,14 @@ */ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { + public static final int DISABLE_SMART_PROXY_TIMEOUT = 3600; private final int _id; private final Download _download; private volatile boolean _exit; private final Object _secure_notify_lock; private volatile boolean _error_wait; private boolean _notified; - private boolean _error_no_proxy; - private String _proxy; + private volatile boolean _use_smart_proxy; public ChunkDownloader(int id, Download download) { _notified = false; @@ -36,15 +36,15 @@ public ChunkDownloader(int id, Download download) { _id = id; _download = download; _error_wait = false; - _error_no_proxy = false; + _use_smart_proxy = false; } - public boolean isError_no_proxy() { - return _error_no_proxy; + public boolean isUse_smart_proxy() { + return _use_smart_proxy; } - public void setError_no_proxy(boolean _error_no_proxy) { - this._error_no_proxy = _error_no_proxy; + public void setUse_smart_proxy(boolean value) { + _use_smart_proxy = value; } public void setExit(boolean exit) { @@ -101,6 +101,24 @@ public void secureWait() { @Override public void run() { + + THREAD_POOL.execute(new Runnable() { + + @Override + public void run() { + + while (!_exit) { + + try { + _use_smart_proxy = false; + Thread.sleep(DISABLE_SMART_PROXY_TIMEOUT * 1000); + } catch (InterruptedException ex) { + Logger.getLogger(ChunkDownloader.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + }); + String worker_url = null; Chunk chunk; int reads, conta_error, http_status; @@ -120,13 +138,18 @@ public void run() { while (!_exit && !_download.isStopped()) { - if (httpclient == null || error || (MainPanel.isUse_smart_proxy() && _error_no_proxy)) { + if (_use_smart_proxy && !MainPanel.isUse_smart_proxy()) { + + _use_smart_proxy = false; + } + + if (httpclient == null || error || (MainPanel.isUse_smart_proxy() && _use_smart_proxy)) { - if (error) { - _error_no_proxy = true; + if (error && !_use_smart_proxy) { + _use_smart_proxy = true; } - if (MainPanel.isUse_smart_proxy() && _error_no_proxy) { + if (_use_smart_proxy && !MainPanel.isUse_proxy()) { if (error && current_proxy != null) { diff --git a/src/megabasterd/ChunkDownloaderMono.java b/src/megabasterd/ChunkDownloaderMono.java index e0f1a8cda..b82c5df19 100644 --- a/src/megabasterd/ChunkDownloaderMono.java +++ b/src/megabasterd/ChunkDownloaderMono.java @@ -26,6 +26,24 @@ public ChunkDownloaderMono(Download download) { @Override public void run() { + + THREAD_POOL.execute(new Runnable() { + + @Override + public void run() { + + while (!isExit()) { + + try { + setUse_smart_proxy(false); + Thread.sleep(ChunkDownloader.DISABLE_SMART_PROXY_TIMEOUT * 1000); + } catch (InterruptedException ex) { + Logger.getLogger(ChunkDownloader.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + }); + String worker_url = null; String current_proxy = null; Chunk chunk; @@ -47,13 +65,18 @@ public void run() { while (!isExit() && !getDownload().isStopped()) { - if (httpclient == null || worker_url == null || error || (MainPanel.isUse_smart_proxy() && this.isError_no_proxy())) { + if (this.isUse_smart_proxy() && !MainPanel.isUse_smart_proxy()) { + + this.setUse_smart_proxy(false); + } + + if (httpclient == null || worker_url == null || error || (MainPanel.isUse_smart_proxy() && this.isUse_smart_proxy())) { - if (error) { - this.setError_no_proxy(true); + if (error && !this.isUse_smart_proxy()) { + this.setUse_smart_proxy(true); } - if (MainPanel.isUse_smart_proxy() && this.isError_no_proxy()) { + if (this.isUse_smart_proxy() && !MainPanel.isUse_proxy()) { if (error && current_proxy != null) { @@ -84,7 +107,9 @@ public void run() { if (httpresponse != null) { httpresponse.close(); } + } + chunk = new Chunk(getDownload().nextChunkId(), getDownload().getFile_size(), null); try { diff --git a/src/megabasterd/MainPanel.java b/src/megabasterd/MainPanel.java index 02591cdbc..a3a7b1c7b 100644 --- a/src/megabasterd/MainPanel.java +++ b/src/megabasterd/MainPanel.java @@ -45,7 +45,7 @@ */ public final class MainPanel { - public static final String VERSION = "2.29"; + public static final String VERSION = "2.30"; public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; public static final int STREAMER_PORT = 1337; diff --git a/src/megabasterd/SettingsDialog.form b/src/megabasterd/SettingsDialog.form index 9c418044c..ae75f1819 100644 --- a/src/megabasterd/SettingsDialog.form +++ b/src/megabasterd/SettingsDialog.form @@ -4,7 +4,6 @@ - @@ -25,18 +24,9 @@ - + - - - - - - - - - - + @@ -45,61 +35,23 @@ - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + - + - - - - - - - - + @@ -107,70 +59,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + @@ -180,1010 +75,1145 @@ - - - - - - - - - - - - - - - - - + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - - + + + + + + + + + + + - + + + + + + + + + + + + + + + + +
+
+ + + + + +
+
+
+
+ - + - - + - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+ + + + + + - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
- - - - - - - - - - - diff --git a/src/megabasterd/SettingsDialog.java b/src/megabasterd/SettingsDialog.java index db6656552..47cf98b51 100644 --- a/src/megabasterd/SettingsDialog.java +++ b/src/megabasterd/SettingsDialog.java @@ -484,6 +484,8 @@ public SettingsDialog(javax.swing.JFrame parent, boolean modal) { // //GEN-BEGIN:initComponents private void initComponents() { + jScrollPane1 = new javax.swing.JScrollPane(); + jPanel2 = new javax.swing.JPanel(); ok_button = new javax.swing.JButton(); cancel_button = new javax.swing.JButton(); jTabbedPane1 = new javax.swing.JTabbedPane(); @@ -546,7 +548,6 @@ private void initComponents() { remove_elc_account_button = new javax.swing.JButton(); add_elc_account_button = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); - jSeparator9 = new javax.swing.JSeparator(); jPanel1 = new javax.swing.JPanel(); proxy_panel = new javax.swing.JPanel(); proxy_host_label = new javax.swing.JLabel(); @@ -564,7 +565,8 @@ private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Settings"); - setResizable(false); + + jScrollPane1.setBorder(null); ok_button.setFont(new java.awt.Font("Ubuntu", 1, 22)); // NOI18N ok_button.setText("OK"); @@ -891,7 +893,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGap(98, 98, 98) .addComponent(max_up_speed_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(limit_upload_speed_checkbox)) - .addGap(0, 590, Short.MAX_VALUE))) + .addGap(0, 695, Short.MAX_VALUE))) .addContainerGap()) ); uploads_panelLayout.setVerticalGroup( @@ -919,7 +921,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGroup(uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(max_up_speed_label) .addComponent(max_up_speed_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(427, Short.MAX_VALUE)) + .addContainerGap(443, Short.MAX_VALUE)) ); jTabbedPane1.addTab("Uploads", uploads_panel); @@ -1053,24 +1055,23 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(accounts_panelLayout.createSequentialGroup() .addContainerGap() .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator9) .addComponent(mega_accounts_scrollpane) - .addComponent(elc_accounts_scrollpane) .addGroup(accounts_panelLayout.createSequentialGroup() .addComponent(delete_all_accounts_button) .addGap(18, 18, 18) .addComponent(unlock_accounts_button) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 352, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 457, Short.MAX_VALUE) .addComponent(encrypt_pass_checkbox)) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(accounts_panelLayout.createSequentialGroup() .addComponent(remove_mega_account_button) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(add_mega_account_button)) + .addComponent(elc_accounts_scrollpane) .addGroup(accounts_panelLayout.createSequentialGroup() .addComponent(remove_elc_account_button) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(add_elc_account_button)) - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(accounts_panelLayout.createSequentialGroup() .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(mega_accounts_label) @@ -1091,22 +1092,20 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(mega_accounts_scrollpane, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(mega_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(remove_mega_account_button) .addComponent(add_mega_account_button)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator9, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(elc_accounts_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(elc_accounts_scrollpane, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(elc_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(remove_elc_account_button) .addComponent(add_elc_account_button)) - .addContainerGap(131, Short.MAX_VALUE)) + .addContainerGap()) ); jTabbedPane1.addTab("Accounts", accounts_panel); @@ -1251,7 +1250,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(proxy_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(444, Short.MAX_VALUE)) + .addContainerGap(460, Short.MAX_VALUE)) ); jTabbedPane1.addTab("Advanced", jPanel1); @@ -1260,15 +1259,15 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { status.setForeground(new java.awt.Color(9, 109, 235)); status.setDoubleBuffered(true); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTabbedPane1) - .addGroup(layout.createSequentialGroup() + .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(status, javax.swing.GroupLayout.PREFERRED_SIZE, 657, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(ok_button, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -1276,19 +1275,38 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { .addComponent(cancel_button, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jTabbedPane1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ok_button) .addComponent(cancel_button) .addComponent(status)) .addContainerGap()) ); + jScrollPane1.setViewportView(jPanel2); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jScrollPane1) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jScrollPane1) + .addContainerGap()) + ); + pack(); }// //GEN-END:initComponents @@ -2229,6 +2247,8 @@ private void smart_proxy_checkboxStateChanged(javax.swing.event.ChangeEvent evt) private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator10; private javax.swing.JSeparator jSeparator2; @@ -2238,7 +2258,6 @@ private void smart_proxy_checkboxStateChanged(javax.swing.event.ChangeEvent evt) private javax.swing.JSeparator jSeparator6; private javax.swing.JSeparator jSeparator7; private javax.swing.JSeparator jSeparator8; - private javax.swing.JSeparator jSeparator9; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JCheckBox limit_download_speed_checkbox; private javax.swing.JCheckBox limit_upload_speed_checkbox;