diff --git a/pom.xml b/pom.xml index b2fd095b6..f4875ce54 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.tonikelope MegaBasterd - 6.45 + 6.46 jar diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java index beea5ddfc..e49a4106b 100644 --- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java +++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloader.java @@ -145,13 +145,13 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { long chunk_id = _download.nextChunkId(); - long chunk_offset = ChunkManager.calculateChunkOffset(chunk_id, Download.CHUNK_SIZE_MULTI); + long chunk_offset = ChunkWriteManager.calculateChunkOffset(chunk_id, Download.CHUNK_SIZE_MULTI); - long chunk_size = ChunkManager.calculateChunkSize(chunk_id, _download.getFile_size(), chunk_offset, Download.CHUNK_SIZE_MULTI); + long chunk_size = ChunkWriteManager.calculateChunkSize(chunk_id, _download.getFile_size(), chunk_offset, Download.CHUNK_SIZE_MULTI); - ChunkManager.checkChunkID(chunk_id, _download.getFile_size(), chunk_offset); + ChunkWriteManager.checkChunkID(chunk_id, _download.getFile_size(), chunk_offset); - String chunk_url = ChunkManager.genChunkUrl(worker_url, _download.getFile_size(), chunk_offset, chunk_size); + String chunk_url = ChunkWriteManager.genChunkUrl(worker_url, _download.getFile_size(), chunk_offset, chunk_size); if ((_current_smart_proxy != null || http_error == 509) && MainPanel.isUse_smart_proxy() && !MainPanel.isUse_proxy()) { diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java b/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java index a25ad3fa9..5d8a2cc73 100644 --- a/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java +++ b/src/main/java/com/tonikelope/megabasterd/ChunkDownloaderMono.java @@ -52,11 +52,11 @@ public class ChunkDownloaderMono extends ChunkDownloader { chunk_id = getDownload().nextChunkId(); - long chunk_offset = ChunkManager.calculateChunkOffset(chunk_id, 1); + long chunk_offset = ChunkWriteManager.calculateChunkOffset(chunk_id, 1); - long chunk_size = ChunkManager.calculateChunkSize(chunk_id, getDownload().getFile_size(), chunk_offset, 1); + long chunk_size = ChunkWriteManager.calculateChunkSize(chunk_id, getDownload().getFile_size(), chunk_offset, 1); - ChunkManager.checkChunkID(chunk_id, getDownload().getFile_size(), chunk_offset); + ChunkWriteManager.checkChunkID(chunk_id, getDownload().getFile_size(), chunk_offset); long chunk_reads = 0; diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java b/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java index 9bdc5033a..1350a775d 100644 --- a/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java +++ b/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java @@ -122,13 +122,13 @@ public class ChunkUploader implements Runnable, SecureSingleThreadNotifiable { chunk_id = _upload.nextChunkId(); - long chunk_offset = ChunkManager.calculateChunkOffset(chunk_id, Upload.CHUNK_SIZE_MULTI); + long chunk_offset = ChunkWriteManager.calculateChunkOffset(chunk_id, Upload.CHUNK_SIZE_MULTI); - long chunk_size = ChunkManager.calculateChunkSize(chunk_id, _upload.getFile_size(), chunk_offset, Upload.CHUNK_SIZE_MULTI); + long chunk_size = ChunkWriteManager.calculateChunkSize(chunk_id, _upload.getFile_size(), chunk_offset, Upload.CHUNK_SIZE_MULTI); - ChunkManager.checkChunkID(chunk_id, _upload.getFile_size(), chunk_offset); + ChunkWriteManager.checkChunkID(chunk_id, _upload.getFile_size(), chunk_offset); - String chunk_url = ChunkManager.genChunkUrl(worker_url, _upload.getFile_size(), chunk_offset, chunk_size); + String chunk_url = ChunkWriteManager.genChunkUrl(worker_url, _upload.getFile_size(), chunk_offset, chunk_size); URL url = new URL(chunk_url); diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkManager.java b/src/main/java/com/tonikelope/megabasterd/ChunkWriteManager.java similarity index 95% rename from src/main/java/com/tonikelope/megabasterd/ChunkManager.java rename to src/main/java/com/tonikelope/megabasterd/ChunkWriteManager.java index 685687b15..bbdeaee8b 100644 --- a/src/main/java/com/tonikelope/megabasterd/ChunkManager.java +++ b/src/main/java/com/tonikelope/megabasterd/ChunkWriteManager.java @@ -18,7 +18,7 @@ import javax.crypto.NoSuchPaddingException; * * @author tonikelope */ -public final class ChunkManager implements Runnable, SecureSingleThreadNotifiable { +public final class ChunkWriteManager implements Runnable, SecureSingleThreadNotifiable { public static long calculateChunkOffset(long chunk_id, int size_multi) { long[] offs = {0, 128, 384, 768, 1280, 1920, 2688}; @@ -67,7 +67,7 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl private boolean _notified; private final String _chunks_dir; - public ChunkManager(Download downloader) throws Exception { + public ChunkWriteManager(Download downloader) throws Exception { _notified = false; _exit = false; _download = downloader; @@ -147,7 +147,7 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl try { MiscTools.deleteDirectoryRecursion(Paths.get(getChunks_dir())); } catch (IOException ex) { - Logger.getLogger(ChunkManager.class.getName()).log(Level.SEVERE, null, ex); + Logger.getLogger(ChunkWriteManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -227,6 +227,6 @@ public final class ChunkManager implements Runnable, SecureSingleThreadNotifiabl LOG.log(Level.INFO, "{0} Chunkmanager: bye bye{1}", new Object[]{Thread.currentThread().getName(), _download.getFile().getName()}); } - private static final Logger LOG = Logger.getLogger(ChunkManager.class.getName()); + private static final Logger LOG = Logger.getLogger(ChunkWriteManager.class.getName()); } diff --git a/src/main/java/com/tonikelope/megabasterd/Download.java b/src/main/java/com/tonikelope/megabasterd/Download.java index af41d1743..a9852fd3f 100644 --- a/src/main/java/com/tonikelope/megabasterd/Download.java +++ b/src/main/java/com/tonikelope/megabasterd/Download.java @@ -79,7 +79,7 @@ public final class Download implements Transference, Runnable, SecureSingleThrea private volatile boolean _pause; private final ConcurrentLinkedQueue _partialProgressQueue; private volatile long _progress; - private ChunkManager _chunkmanager; + private ChunkWriteManager _chunkmanager; private String _last_download_url; private boolean _provision_ok; private boolean _finishing_download; @@ -291,7 +291,7 @@ public final class Download implements Transference, Runnable, SecureSingleThrea _pause = pause; } - public ChunkManager getChunkmanager() { + public ChunkWriteManager getChunkmanager() { return _chunkmanager; } @@ -594,7 +594,7 @@ public final class Download implements Transference, Runnable, SecureSingleThrea if (_use_slots) { - _chunkmanager = new ChunkManager(this); + _chunkmanager = new ChunkWriteManager(this); _thread_pool.execute(_chunkmanager); @@ -1326,11 +1326,11 @@ public final class Download implements Transference, Runnable, SecureSingleThrea try { while (!_exit) { - long chunk_offset = ChunkManager.calculateChunkOffset(chunk_id, 1); + long chunk_offset = ChunkWriteManager.calculateChunkOffset(chunk_id, 1); - long chunk_size = ChunkManager.calculateChunkSize(chunk_id, this.getFile_size(), chunk_offset, 1); + long chunk_size = ChunkWriteManager.calculateChunkSize(chunk_id, this.getFile_size(), chunk_offset, 1); - ChunkManager.checkChunkID(chunk_id, this.getFile_size(), chunk_offset); + ChunkWriteManager.checkChunkID(chunk_id, this.getFile_size(), chunk_offset); tot += chunk_size; diff --git a/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java b/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java index 7e17dbb72..440b53442 100644 --- a/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java +++ b/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java @@ -36,6 +36,7 @@ public final class LabelTranslatorSingleton { private void Spanish() { + _addTranslation("Finishing calculating CBC-MAC code (this could take a while) ... ***DO NOT EXIT MEGABASTERD NOW***", "Terminando de calcular código CBC-MAC (esto podría llevar tiempo) ... ***NO CIERRES MEGABASTERD EN ESTE MOMENTO***"); _addTranslation("Split content in different uploads", "Separar contenido en diferentes subidas"); _addTranslation("Merge content in the same upload", "Juntar todo en la misma subida"); _addTranslation("How do you want to proceed?", "¿Qué quieres hacer?"); diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java index 54ba3180b..9291e800e 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java @@ -50,7 +50,7 @@ import javax.swing.UIManager; */ public final class MainPanel { - public static final String VERSION = "6.45"; + public static final String VERSION = "6.46"; 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/main/java/com/tonikelope/megabasterd/UploadMACGenerator.java b/src/main/java/com/tonikelope/megabasterd/UploadMACGenerator.java index 226443464..0c919c8d2 100644 --- a/src/main/java/com/tonikelope/megabasterd/UploadMACGenerator.java +++ b/src/main/java/com/tonikelope/megabasterd/UploadMACGenerator.java @@ -107,17 +107,33 @@ public final class UploadMACGenerator implements Runnable, SecureSingleThreadNot long tot = 0L; int[] chunk_mac = new int[4]; byte[] byte_block = new byte[16]; + boolean upload_finished = false; try { while (!_exit && !_upload.isStopped() && !_upload.getMain_panel().isExit()) { + if (!upload_finished && _upload.getProgress() == _upload.getFile_size()) { + + _upload.getView().printStatusNormal("Finishing calculating CBC-MAC code (this could take a while) ... ***DO NOT EXIT MEGABASTERD NOW***"); + + _upload.getView().getPause_button().setVisible(false); + _upload.getMain_panel().getGlobal_dl_speed().detachTransference(_upload); + _upload.getView().getSpeed_label().setVisible(false); + _upload.getView().getSlots_label().setVisible(false); + _upload.getView().getSlot_status_label().setVisible(false); + _upload.getView().getSlots_spinner().setVisible(false); + + upload_finished = true; + + } + int reads; - long chunk_offset = ChunkManager.calculateChunkOffset(chunk_id, 1); + long chunk_offset = ChunkWriteManager.calculateChunkOffset(chunk_id, 1); - long chunk_size = ChunkManager.calculateChunkSize(chunk_id, _upload.getFile_size(), chunk_offset, 1); + long chunk_size = ChunkWriteManager.calculateChunkSize(chunk_id, _upload.getFile_size(), chunk_offset, 1); - ChunkManager.checkChunkID(chunk_id, _upload.getFile_size(), chunk_offset); + ChunkWriteManager.checkChunkID(chunk_id, _upload.getFile_size(), chunk_offset); try { diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png index 6e2fecbf7..ea73c5085 100644 Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ