From d3a6a0359634b8dcdcc8f23f3b23111e2c3c9088 Mon Sep 17 00:00:00 2001 From: tonikelope Date: Sat, 7 Oct 2017 19:34:03 +0200 Subject: [PATCH] 2.16 -Chunk size 10MB --- src/megabasterd/Chunk.java | 38 ++++++++++++++++++++++++++-- src/megabasterd/ChunkDownloader.java | 2 +- src/megabasterd/ChunkUploader.java | 2 +- src/megabasterd/ChunkWriter.java | 2 +- src/megabasterd/Download.java | 2 +- src/megabasterd/MainPanel.java | 2 +- src/megabasterd/MegaProxyServer.java | 2 +- src/megabasterd/SettingsDialog.form | 10 ++++---- src/megabasterd/SettingsDialog.java | 10 ++++---- src/megabasterd/Transference.java | 1 + 10 files changed, 53 insertions(+), 18 deletions(-) diff --git a/src/megabasterd/Chunk.java b/src/megabasterd/Chunk.java index 78813bb5c..d8ea04393 100644 --- a/src/megabasterd/Chunk.java +++ b/src/megabasterd/Chunk.java @@ -15,8 +15,42 @@ public final class Chunk { private final long _size; private final ByteArrayOutputStream _data_os; private final String _url; + private final int _size_multi; + public int getSize_multi() { + return _size_multi; + } + public Chunk(long id, long file_size, String file_url) throws ChunkInvalidIdException { + _size_multi = 1; + + _id = id; + + _offset = calculateOffset(); + + if (file_size > 0) { + if (_offset >= file_size) { + throw new ChunkInvalidIdException(valueOf(id)); + } + + } else { + + if (id > 1) { + + throw new ChunkInvalidIdException(valueOf(id)); + } + } + + _size = calculateSize(file_size); + + _url = file_url != null ? file_url + "/" + _offset + "-" + (_offset + _size - 1) : null; + + _data_os = new ByteArrayOutputStream((int) _size); + } + + public Chunk(long id, long file_size, String file_url, int size_multi) throws ChunkInvalidIdException { + _size_multi = size_multi; + _id = id; _offset = calculateOffset(); @@ -66,7 +100,7 @@ public final class Chunk { } private long calculateSize(long file_size) { - long chunk_size = (_id >= 1 && _id <= 7) ? _id * 128 * 1024 : 1024 * 1024; + long chunk_size = (_id >= 1 && _id <= 7) ? _id * 128 * 1024 : 1024 * 1024 * _size_multi; if (_offset + chunk_size > file_size) { chunk_size = file_size - _offset; @@ -78,7 +112,7 @@ public final class Chunk { private long calculateOffset() { long[] offs = {0, 128, 384, 768, 1280, 1920, 2688}; - return (_id <= 7 ? offs[(int) _id - 1] : (3584 + (_id - 8) * 1024)) * 1024; + return (_id <= 7 ? offs[(int) _id - 1] : (3584 + (_id - 8) * 1024 * _size_multi)) * 1024; } } diff --git a/src/megabasterd/ChunkDownloader.java b/src/megabasterd/ChunkDownloader.java index bec4f3842..312afb8d0 100644 --- a/src/megabasterd/ChunkDownloader.java +++ b/src/megabasterd/ChunkDownloader.java @@ -110,7 +110,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { worker_url = _download.getDownloadUrlForWorker(); } - chunk = new Chunk(_download.nextChunkId(), _download.getFile_size(), worker_url); + chunk = new Chunk(_download.nextChunkId(), _download.getFile_size(), worker_url, Transference.CHUNK_SIZE_MULTI); HttpGet httpget = new HttpGet(new URI(chunk.getUrl())); diff --git a/src/megabasterd/ChunkUploader.java b/src/megabasterd/ChunkUploader.java index 5223a97dc..a5a9f1c8c 100644 --- a/src/megabasterd/ChunkUploader.java +++ b/src/megabasterd/ChunkUploader.java @@ -119,7 +119,7 @@ public class ChunkUploader implements Runnable, SecureSingleThreadNotifiable { conta_error = 0; while (!_exit && !_upload.isStopped()) { - chunk = new Chunk(_upload.nextChunkId(), _upload.getFile_size(), worker_url); + chunk = new Chunk(_upload.nextChunkId(), _upload.getFile_size(), worker_url, Transference.CHUNK_SIZE_MULTI); f.seek(chunk.getOffset()); diff --git a/src/megabasterd/ChunkWriter.java b/src/megabasterd/ChunkWriter.java index 998162616..e55746c48 100644 --- a/src/megabasterd/ChunkWriter.java +++ b/src/megabasterd/ChunkWriter.java @@ -152,7 +152,7 @@ public final class ChunkWriter implements Runnable, SecureSingleThreadNotifiable private long calculateLastWrittenChunk(long temp_file_size) { if (temp_file_size > 3584 * 1024) { - return 7 + (long) Math.ceil((temp_file_size - 3584 * 1024) / (1024 * 1024)); + return 7 + (long) Math.ceil((temp_file_size - 3584 * 1024) / (1024 * 1024 * Transference.CHUNK_SIZE_MULTI)); } else { int i = 0, tot = 0; diff --git a/src/megabasterd/Download.java b/src/megabasterd/Download.java index 5ef4d676b..2140e56c9 100644 --- a/src/megabasterd/Download.java +++ b/src/megabasterd/Download.java @@ -1162,7 +1162,7 @@ public final class Download implements Transference, Runnable, SecureSingleThrea public long calculateMaxTempFileSize(long size) { if (size > 3584 * 1024) { - long reminder = (size - 3584 * 1024) % (1024 * 1024); + long reminder = (size - 3584 * 1024) % (1024 * 1024 * Transference.CHUNK_SIZE_MULTI); return reminder == 0 ? size : (size - reminder); } else { diff --git a/src/megabasterd/MainPanel.java b/src/megabasterd/MainPanel.java index 6d8fdd629..571caf47d 100644 --- a/src/megabasterd/MainPanel.java +++ b/src/megabasterd/MainPanel.java @@ -59,7 +59,7 @@ import org.apache.http.auth.UsernamePasswordCredentials; */ public final class MainPanel { - public static final String VERSION = "2.15"; + public static final String VERSION = "2.16"; public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int STREAMER_PORT = 1337; public static final int WATCHDOG_PORT = 1338; diff --git a/src/megabasterd/MegaProxyServer.java b/src/megabasterd/MegaProxyServer.java index f13d56825..a8f48cdb0 100644 --- a/src/megabasterd/MegaProxyServer.java +++ b/src/megabasterd/MegaProxyServer.java @@ -9,7 +9,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * https://stackoverflow.com/users/6477541/sarvesh-agarwal + * Thanks to -> https://stackoverflow.com/users/6477541/sarvesh-agarwal */ public class MegaProxyServer extends Thread { diff --git a/src/megabasterd/SettingsDialog.form b/src/megabasterd/SettingsDialog.form index ffbdcd196..c96061e98 100644 --- a/src/megabasterd/SettingsDialog.form +++ b/src/megabasterd/SettingsDialog.form @@ -293,7 +293,7 @@ - + @@ -325,7 +325,7 @@ - + @@ -418,7 +418,7 @@ - + @@ -516,7 +516,7 @@ - + @@ -565,7 +565,7 @@ - + diff --git a/src/megabasterd/SettingsDialog.java b/src/megabasterd/SettingsDialog.java index 0c3dbe922..04cbf57f0 100644 --- a/src/megabasterd/SettingsDialog.java +++ b/src/megabasterd/SettingsDialog.java @@ -585,7 +585,7 @@ public final class SettingsDialog extends javax.swing.JDialog { } }); - default_slots_down_label.setFont(new java.awt.Font("Ubuntu", 1, 20)); // NOI18N + default_slots_down_label.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N default_slots_down_label.setText("Default slots per file:"); default_slots_down_label.setDoubleBuffered(true); @@ -606,7 +606,7 @@ public final class SettingsDialog extends javax.swing.JDialog { } }); - max_down_speed_label.setFont(new java.awt.Font("Ubuntu", 1, 20)); // NOI18N + max_down_speed_label.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N max_down_speed_label.setText("Max speed (KB/s):"); max_down_speed_spinner.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N @@ -641,7 +641,7 @@ public final class SettingsDialog extends javax.swing.JDialog { megacrypter_reverse_port_label.setText("TCP Port:"); megacrypter_reverse_warning_label.setFont(new java.awt.Font("Ubuntu", 2, 14)); // NOI18N - megacrypter_reverse_warning_label.setText("Note: you MUST OPEN this port in your router/firewall."); + megacrypter_reverse_warning_label.setText("Note: you MUST \"OPEN\" this port in your router/firewall."); megacrypter_reverse_port_spinner.setFont(new java.awt.Font("Ubuntu", 0, 16)); // NOI18N @@ -756,7 +756,7 @@ public final class SettingsDialog extends javax.swing.JDialog { jTabbedPane1.addTab("Downloads", downloads_panel); - default_slots_up_label.setFont(new java.awt.Font("Ubuntu", 1, 20)); // NOI18N + default_slots_up_label.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N default_slots_up_label.setText("Default slots per file:"); default_slots_up_label.setDoubleBuffered(true); @@ -780,7 +780,7 @@ public final class SettingsDialog extends javax.swing.JDialog { } }); - max_up_speed_label.setFont(new java.awt.Font("Ubuntu", 1, 20)); // NOI18N + max_up_speed_label.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N max_up_speed_label.setText("Max speed (KB/s):"); max_up_speed_spinner.setFont(new java.awt.Font("Ubuntu", 0, 20)); // NOI18N diff --git a/src/megabasterd/Transference.java b/src/megabasterd/Transference.java index 5fdc08bdc..3ca099930 100644 --- a/src/megabasterd/Transference.java +++ b/src/megabasterd/Transference.java @@ -15,6 +15,7 @@ public interface Transference { boolean LIMIT_TRANSFERENCE_SPEED_DEFAULT = false; int MAX_TRANSFERENCE_SPEED_DEFAULT = 5; int MAX_WAIT_WORKERS_SHUTDOWN = 15; + int CHUNK_SIZE_MULTI = 10; Integer[] FATAL_ERROR_API_CODES = {-2, -8, -9, -10, -11, -12, -13, -14, -15, -16, 22, 23, 24, 25}; void start();