mirror of
https://github.com/tonikelope/megabasterd.git
synced 2025-04-29 22:24:32 +02:00
7.6
-Trying to put everything in place
This commit is contained in:
parent
8291a51ea5
commit
997a0491ea
2
pom.xml
2
pom.xml
@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.tonikelope</groupId>
|
||||
<artifactId>MegaBasterd</artifactId>
|
||||
<version>7.5</version>
|
||||
<version>7.6</version>
|
||||
<packaging>jar</packaging>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@ -921,7 +921,7 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
|
||||
swingInvoke(() -> {
|
||||
getView().getClose_button().setVisible(true);
|
||||
|
||||
if (_status_error != null || _canceled) {
|
||||
if ((_status_error != null || _canceled) && isProvision_ok()) {
|
||||
|
||||
getView().getRestart_button().setVisible(true);
|
||||
|
||||
@ -1001,8 +1001,6 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
|
||||
|
||||
} catch (SQLException ex) {
|
||||
|
||||
LOG.log(SEVERE, null, ex);
|
||||
|
||||
_status_error = "Error registering download: file is already downloading.";
|
||||
}
|
||||
|
||||
@ -1045,7 +1043,7 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
|
||||
getView().printStatusError(_status_error);
|
||||
|
||||
swingInvoke(() -> {
|
||||
getView().getRestart_button().setVisible(true);
|
||||
getView().getClose_button().setVisible(true);
|
||||
});
|
||||
|
||||
} else {
|
||||
@ -1066,14 +1064,15 @@ public class Download implements Transference, Runnable, SecureSingleThreadNotif
|
||||
getView().getFile_size_label().setText(formatBytes(_file_size));
|
||||
});
|
||||
|
||||
swingInvoke(() -> {
|
||||
getView().getClose_button().setVisible(true);
|
||||
getView().getQueue_up_button().setVisible(true);
|
||||
getView().getQueue_down_button().setVisible(true);
|
||||
getView().getQueue_top_button().setVisible(true);
|
||||
getView().getQueue_bottom_button().setVisible(true);
|
||||
});
|
||||
|
||||
}
|
||||
swingInvoke(() -> {
|
||||
getView().getClose_button().setVisible(true);
|
||||
getView().getQueue_up_button().setVisible(true);
|
||||
getView().getQueue_down_button().setVisible(true);
|
||||
getView().getQueue_top_button().setVisible(true);
|
||||
getView().getQueue_bottom_button().setVisible(true);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,8 @@ public class DownloadManager extends TransferenceManager {
|
||||
|
||||
getTransference_waitstart_aux_queue().add(download);
|
||||
|
||||
} else {
|
||||
getTransference_finished_queue().add(download);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Iterator;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.UUID;
|
||||
@ -54,7 +54,7 @@ import javax.swing.UIManager;
|
||||
*/
|
||||
public final class MainPanel {
|
||||
|
||||
public static final String VERSION = "7.5";
|
||||
public static final String VERSION = "7.6";
|
||||
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;
|
||||
@ -1176,15 +1176,15 @@ public final class MainPanel {
|
||||
|
||||
ArrayList<String> downloads_queue = DBTools.selectDownloadsQueue();
|
||||
|
||||
System.out.println(downloads_queue);
|
||||
|
||||
HashMap<String, HashMap<String, Object>> res = selectDownloads();
|
||||
|
||||
System.out.println(res);
|
||||
|
||||
tot_downloads = res.size();
|
||||
|
||||
for (String url : downloads_queue) {
|
||||
Iterator downloads_queue_iterator = downloads_queue.iterator();
|
||||
|
||||
while (downloads_queue_iterator.hasNext()) {
|
||||
|
||||
String url = (String) downloads_queue_iterator.next();
|
||||
|
||||
HashMap<String, Object> o = res.remove(url);
|
||||
|
||||
@ -1201,32 +1201,19 @@ public final class MainPanel {
|
||||
getDownload_manager().getTransference_provision_queue().add(download);
|
||||
|
||||
conta_downloads++;
|
||||
}
|
||||
|
||||
downloads_queue_iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DBTools.truncateDownloadsQueue();
|
||||
|
||||
for (Map.Entry<String, HashMap<String, Object>> entry : res.entrySet()) {
|
||||
|
||||
String email = (String) entry.getValue().get("email");
|
||||
|
||||
MegaAPI ma = new MegaAPI();
|
||||
|
||||
if (!tthis.isUse_mega_account_down() || (_mega_accounts.get(email) != null && (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null)) {
|
||||
|
||||
Download download = new Download(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("path"), (String) entry.getValue().get("filename"), (String) entry.getValue().get("filekey"), (Long) entry.getValue().get("filesize"), (String) entry.getValue().get("filepass"), (String) entry.getValue().get("filenoexpire"), _use_slots_down, false, (String) entry.getValue().get("custom_chunks_dir"), false);
|
||||
|
||||
getDownload_manager().getTransference_provision_queue().add(download);
|
||||
|
||||
conta_downloads++;
|
||||
}
|
||||
|
||||
if (!downloads_queue.isEmpty()) {
|
||||
DBTools.insertDownloadsQueue(downloads_queue);
|
||||
}
|
||||
|
||||
} catch (SQLException ex) {
|
||||
|
||||
Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
|
||||
} catch (Exception ex2) {
|
||||
Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex2);
|
||||
@ -1243,7 +1230,11 @@ public final class MainPanel {
|
||||
swingInvoke(() -> {
|
||||
getView().getjTabbedPane1().setSelectedIndex(0);
|
||||
});
|
||||
|
||||
} else {
|
||||
setResume_downloads(true);
|
||||
}
|
||||
|
||||
swingInvoke(() -> {
|
||||
getView().getStatus_down_label().setText("");
|
||||
});
|
||||
@ -1345,7 +1336,11 @@ public final class MainPanel {
|
||||
|
||||
tot_uploads = res.size();
|
||||
|
||||
for (String filename : uploads_queue) {
|
||||
Iterator uploads_queue_iterator = uploads_queue.iterator();
|
||||
|
||||
while (uploads_queue_iterator.hasNext()) {
|
||||
|
||||
String filename = (String) uploads_queue_iterator.next();
|
||||
|
||||
HashMap<String, Object> o = res.remove(filename);
|
||||
|
||||
@ -1364,47 +1359,27 @@ public final class MainPanel {
|
||||
getUpload_manager().getTransference_provision_queue().add(upload);
|
||||
|
||||
conta_uploads++;
|
||||
} else {
|
||||
throw new Exception("Mega Login Error!");
|
||||
|
||||
uploads_queue_iterator.remove();
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
deleteUpload((String) o.get("filename"), email);
|
||||
|
||||
tot_uploads--;
|
||||
|
||||
uploads_queue_iterator.remove();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
DBTools.truncateUploadsQueue();
|
||||
|
||||
for (Map.Entry<String, HashMap<String, Object>> entry : res.entrySet()) {
|
||||
|
||||
String email = (String) entry.getValue().get("email");
|
||||
|
||||
if (_mega_accounts.get(email) != null) {
|
||||
|
||||
MegaAPI ma;
|
||||
|
||||
if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
|
||||
|
||||
Upload upload = new Upload(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("parent_node"), (String) entry.getValue().get("ul_key") != null ? bin2i32a(BASE642Bin((String) entry.getValue().get("ul_key"))) : null, (String) entry.getValue().get("url"), (String) entry.getValue().get("root_node"), BASE642Bin((String) entry.getValue().get("share_key")), (String) entry.getValue().get("folder_link"), false);
|
||||
|
||||
getUpload_manager().getTransference_provision_queue().add(upload);
|
||||
|
||||
conta_uploads++;
|
||||
} else {
|
||||
throw new Exception("Mega Login Error!");
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
deleteUpload((String) entry.getValue().get("filename"), email);
|
||||
tot_uploads--;
|
||||
}
|
||||
|
||||
if (!uploads_queue.isEmpty()) {
|
||||
DBTools.insertUploadsQueue(uploads_queue);
|
||||
}
|
||||
|
||||
} catch (SQLException ex) {
|
||||
@ -1424,6 +1399,8 @@ public final class MainPanel {
|
||||
swingInvoke(() -> {
|
||||
getView().getjTabbedPane1().setSelectedIndex(1);
|
||||
});
|
||||
} else {
|
||||
setResume_uploads(true);
|
||||
}
|
||||
|
||||
swingInvoke(() -> {
|
||||
|
@ -316,8 +316,6 @@ public final class MainPanelView extends javax.swing.JFrame {
|
||||
|
||||
getMain_panel().getUpload_manager().secureNotify();
|
||||
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1051,14 +1049,11 @@ public final class MainPanelView extends javax.swing.JFrame {
|
||||
}
|
||||
}
|
||||
|
||||
if (!getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) {
|
||||
download = new Download(getMain_panel(), ma, url, dl_path, null, null, null, null, null, getMain_panel().isUse_slots_down(), false, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null, dialog.getPriority_checkbox().isSelected());
|
||||
|
||||
download = new Download(getMain_panel(), ma, url, dl_path, null, null, null, null, null, getMain_panel().isUse_slots_down(), false, getMain_panel().isUse_custom_chunks_dir() ? getMain_panel().getCustom_chunks_dir() : null, dialog.getPriority_checkbox().isSelected());
|
||||
getMain_panel().getDownload_manager().getTransference_provision_queue().add(download);
|
||||
|
||||
getMain_panel().getDownload_manager().getTransference_provision_queue().add(download);
|
||||
|
||||
getMain_panel().getDownload_manager().secureNotify();
|
||||
}
|
||||
getMain_panel().getDownload_manager().secureNotify();
|
||||
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
private int _max_running_trans;
|
||||
private final MainPanel _main_panel;
|
||||
private final Object _secure_notify_lock;
|
||||
private final Object _wait_aux_queue_sort_lock;
|
||||
private final Object _wait_queue_lock;
|
||||
private boolean _notified;
|
||||
private volatile boolean _removing_transferences;
|
||||
@ -52,6 +51,7 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
protected final Object _total_size_lock;
|
||||
protected volatile long _total_progress;
|
||||
protected final Object _total_progress_lock;
|
||||
protected final Object _transference_queue_sort_lock;
|
||||
private volatile Boolean _sort_wait_start_queue;
|
||||
|
||||
public TransferenceManager(MainPanel main_panel, int max_running_trans, javax.swing.JLabel status, javax.swing.JPanel scroll_panel, javax.swing.JButton close_all_button, javax.swing.JButton pause_all_button, javax.swing.MenuElement clean_all_menu) {
|
||||
@ -75,7 +75,7 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
_secure_notify_lock = new Object();
|
||||
_total_size_lock = new Object();
|
||||
_total_progress_lock = new Object();
|
||||
_wait_aux_queue_sort_lock = new Object();
|
||||
_transference_queue_sort_lock = new Object();
|
||||
_wait_queue_lock = new Object();
|
||||
_sort_wait_start_queue = true;
|
||||
_transference_preprocess_global_queue = new ConcurrentLinkedQueue<>();
|
||||
@ -179,10 +179,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
_starting_transferences = starting;
|
||||
}
|
||||
|
||||
public Object geWaitStartAuxQueue_sort_lock() {
|
||||
return _wait_aux_queue_sort_lock;
|
||||
}
|
||||
|
||||
public void setPreprocessing_transferences(boolean preprocessing) {
|
||||
_preprocessing_transferences = preprocessing;
|
||||
}
|
||||
@ -232,25 +228,38 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
}
|
||||
|
||||
public ConcurrentLinkedQueue<Transference> getTransference_provision_queue() {
|
||||
return _transference_provision_queue;
|
||||
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
return _transference_provision_queue;
|
||||
}
|
||||
}
|
||||
|
||||
public ConcurrentLinkedQueue<Transference> getTransference_waitstart_queue() {
|
||||
synchronized (_wait_aux_queue_sort_lock) {
|
||||
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
return _transference_waitstart_queue;
|
||||
}
|
||||
}
|
||||
|
||||
public ConcurrentLinkedQueue<Transference> getTransference_remove_queue() {
|
||||
return _transference_remove_queue;
|
||||
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
return _transference_remove_queue;
|
||||
}
|
||||
}
|
||||
|
||||
public ConcurrentLinkedQueue<Transference> getTransference_finished_queue() {
|
||||
return _transference_finished_queue;
|
||||
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
return _transference_finished_queue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public ConcurrentLinkedQueue<Transference> getTransference_running_list() {
|
||||
return _transference_running_list;
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
return _transference_running_list;
|
||||
}
|
||||
}
|
||||
|
||||
public JPanel getScroll_panel() {
|
||||
@ -485,23 +494,23 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
return _transference_waitstart_aux_queue;
|
||||
}
|
||||
|
||||
protected void sortTransferenceWaitStartAuxQueue() {
|
||||
protected void sortTransferenceQueue(ConcurrentLinkedQueue<Transference> queue) {
|
||||
|
||||
synchronized (_wait_aux_queue_sort_lock) {
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
|
||||
ArrayList<Transference> trans_list = new ArrayList(getTransference_waitstart_aux_queue());
|
||||
ArrayList<Transference> trans_list = new ArrayList(queue);
|
||||
|
||||
trans_list.sort((Transference o1, Transference o2) -> o1.getFile_name().compareToIgnoreCase(o2.getFile_name()));
|
||||
|
||||
getTransference_waitstart_aux_queue().clear();
|
||||
queue.clear();
|
||||
|
||||
getTransference_waitstart_aux_queue().addAll(trans_list);
|
||||
queue.addAll(trans_list);
|
||||
}
|
||||
}
|
||||
|
||||
protected void unfreezeTransferenceWaitStartQueue() {
|
||||
|
||||
synchronized (_wait_aux_queue_sort_lock) {
|
||||
synchronized (getTransference_waitstart_aux_queue()) {
|
||||
|
||||
getTransference_waitstart_queue().forEach((t) -> {
|
||||
t.unfreeze();
|
||||
@ -672,13 +681,13 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
}
|
||||
}
|
||||
|
||||
synchronized (geWaitStartAuxQueue_sort_lock()) {
|
||||
synchronized (_transference_queue_sort_lock) {
|
||||
|
||||
if (getSort_wait_start_queue()) {
|
||||
sortTransferenceWaitStartAuxQueue();
|
||||
sortTransferenceQueue(getTransference_waitstart_aux_queue());
|
||||
}
|
||||
|
||||
if (getTransference_waitstart_aux_queue().peek().isPriority()) {
|
||||
if (getTransference_waitstart_aux_queue().peek() != null && getTransference_waitstart_aux_queue().peek().isPriority()) {
|
||||
|
||||
ArrayList<Transference> trans_list = new ArrayList(getTransference_waitstart_queue());
|
||||
|
||||
@ -700,6 +709,9 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
|
||||
getScroll_panel().add((Component) t.getView());
|
||||
});
|
||||
});
|
||||
|
||||
sortTransferenceQueue(getTransference_finished_queue());
|
||||
|
||||
getTransference_finished_queue().forEach((t) -> {
|
||||
swingInvoke(() -> {
|
||||
getScroll_panel().remove((Component) t.getView());
|
||||
|
Loading…
x
Reference in New Issue
Block a user