diff --git a/src/megabasterd/Chunk.java b/src/megabasterd/Chunk.java index d53442953..de9159756 100644 --- a/src/megabasterd/Chunk.java +++ b/src/megabasterd/Chunk.java @@ -70,7 +70,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*1_024:1_024*1_024; if(_offset + chunk_size > file_size) { chunk_size = file_size - _offset; @@ -81,9 +81,9 @@ public final class Chunk { private long calculateOffset() { - long[] offs = {0, 128, 384, 768, 1280, 1920, 2688}; + long[] offs = {0, 128, 384, 768, 1_280, 1_920, 2_688}; - return (_id<=7?offs[(int)_id-1]:(3584 + (_id-8)*1024))*1024; + return (_id<=7?offs[(int)_id-1]:(3_584 + (_id-8)*1_024))*1_024; } } diff --git a/src/megabasterd/ChunkDownloader.java b/src/megabasterd/ChunkDownloader.java index 2f0661988..d27278202 100644 --- a/src/megabasterd/ChunkDownloader.java +++ b/src/megabasterd/ChunkDownloader.java @@ -180,7 +180,7 @@ public class ChunkDownloader implements Runnable, SecureNotifiable { conta_error++; - Thread.sleep(getWaitTimeExpBackOff(conta_error)*1000); + Thread.sleep(getWaitTimeExpBackOff(conta_error)*1_000); } else if(!error) { diff --git a/src/megabasterd/ChunkDownloaderMono.java b/src/megabasterd/ChunkDownloaderMono.java index 0d07e5eed..d61c36cce 100644 --- a/src/megabasterd/ChunkDownloaderMono.java +++ b/src/megabasterd/ChunkDownloaderMono.java @@ -114,7 +114,7 @@ public class ChunkDownloaderMono extends ChunkDownloader { conta_error++; - Thread.sleep(getWaitTimeExpBackOff(conta_error)*1000); + Thread.sleep(getWaitTimeExpBackOff(conta_error)*1_000); } else if(!error) { diff --git a/src/megabasterd/ChunkUploader.java b/src/megabasterd/ChunkUploader.java index cdf0c0fd1..0e8ba9dc4 100644 --- a/src/megabasterd/ChunkUploader.java +++ b/src/megabasterd/ChunkUploader.java @@ -235,7 +235,7 @@ public final class ChunkUploader implements Runnable, SecureNotifiable { if(!_exit) { - Thread.sleep(getWaitTimeExpBackOff(conta_error)*1000); + Thread.sleep(getWaitTimeExpBackOff(conta_error)*1_000); } } else if(!error) { diff --git a/src/megabasterd/ChunkWriter.java b/src/megabasterd/ChunkWriter.java index 3ad6ef35e..d2a881670 100644 --- a/src/megabasterd/ChunkWriter.java +++ b/src/megabasterd/ChunkWriter.java @@ -128,7 +128,7 @@ public final class ChunkWriter implements Runnable, SecureNotifiable { { Chunk current_chunk; CipherInputStream cis; - byte[] buffer = new byte[16*1024]; + byte[] buffer = new byte[16*1_024]; int reads; try { @@ -186,9 +186,9 @@ public final class ChunkWriter implements Runnable, SecureNotifiable { private long calculateLastWrittenChunk(long temp_file_size) { - if(temp_file_size > 3584*1024) + if(temp_file_size > 3_584*1_024) { - return 7 + (long)Math.ceil((temp_file_size - 3584*1024)/(1024*1024)); + return 7 + (long)Math.ceil((temp_file_size - 3_584*1_024)/(1_024*1_024)); } else { @@ -197,7 +197,7 @@ public final class ChunkWriter implements Runnable, SecureNotifiable { while(tot < temp_file_size) { i++; - tot+=i*128*1024; + tot+=i*128*1_024; } return i; diff --git a/src/megabasterd/ClipboardSpy.java b/src/megabasterd/ClipboardSpy.java index 6a903ef6e..4fb2899fc 100644 --- a/src/megabasterd/ClipboardSpy.java +++ b/src/megabasterd/ClipboardSpy.java @@ -4,6 +4,7 @@ import static java.awt.Toolkit.getDefaultToolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.Transferable; +import static java.lang.System.out; import static java.lang.Thread.sleep; import java.util.concurrent.ConcurrentLinkedQueue; import static java.util.logging.Level.SEVERE; @@ -86,7 +87,7 @@ public final class ClipboardSpy implements Runnable, ClipboardOwner, SecureNotif gainOwnership(_contents); - System.out.println("Spying clipboard..."); + out.println("Spying clipboard..."); secureWait(); } diff --git a/src/megabasterd/CryptTools.java b/src/megabasterd/CryptTools.java index 77469a3d4..d1b9eb00a 100644 --- a/src/megabasterd/CryptTools.java +++ b/src/megabasterd/CryptTools.java @@ -286,11 +286,11 @@ public final class CryptTools { public static int[] MEGAPrepareMasterKey(int[] key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException { - int[] pkey = {0x93C467E3, 0x7DB0C7A4, 0xD1BE3F81, 0x0152CB56}; + int[] pkey = {0x93C4_67E3, 0x7DB0_C7A4, 0xD1BE_3F81, 0x0152_CB56}; int[] iv = {0,0,0,0}; - for(int r=0; r<0x10000; r++) { + for(int r=0; r<0x1_0000; r++) { for(int j=0; j0 && !_exit; i--) { try { - sleep(1000); + sleep(1_000); } catch (InterruptedException ex) {} } } @@ -942,7 +944,7 @@ public final class Download implements Transference, Runnable, SecureNotifiable _thread_pool.execute(c); - }catch(java.util.concurrent.RejectedExecutionException e){System.out.println(e.getMessage());} + }catch(java.util.concurrent.RejectedExecutionException e){out.println(e.getMessage());} } public synchronized void stopLastStartedSlot() @@ -1011,7 +1013,7 @@ public final class Download implements Transference, Runnable, SecureNotifiable long chunk_id=1; long tot=0L; - byte[] chunk_buffer = new byte[16*1024]; + byte[] chunk_buffer = new byte[16*1_024]; byte[] byte_block = new byte[16]; int[] int_block; int re, reads, to_read; @@ -1133,9 +1135,9 @@ public final class Download implements Transference, Runnable, SecureNotifiable public long calculateMaxTempFileSize(long size) { - if(size > 3584*1024) + if(size > 3_584*1_024) { - long reminder = (size - 3584*1024)%(1024*1024); + long reminder = (size - 3_584*1_024)%(1_024*1_024); return reminder==0?size:(size - reminder); } @@ -1146,10 +1148,10 @@ public final class Download implements Transference, Runnable, SecureNotifiable while(tot < size) { i++; - tot+=i*128*1024; + tot+=i*128*1_024; } - return tot==size?size:(tot-i*128*1024); + return tot==size?size:(tot-i*128*1_024); } } @@ -1236,7 +1238,7 @@ public final class Download implements Transference, Runnable, SecureNotifiable } try { - sleep(1000); + sleep(1_000); } catch (InterruptedException ex2) {} } } @@ -1323,7 +1325,7 @@ public final class Download implements Transference, Runnable, SecureNotifiable } try { - sleep(1000); + sleep(1_000); } catch (InterruptedException ex2) {} } } diff --git a/src/megabasterd/FileGrabberDialog.java b/src/megabasterd/FileGrabberDialog.java index 625c4f8cb..561c68375 100644 --- a/src/megabasterd/FileGrabberDialog.java +++ b/src/megabasterd/FileGrabberDialog.java @@ -15,6 +15,7 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; import static megabasterd.MainPanel.FONT_DEFAULT; +import static megabasterd.MainPanel.THREAD_POOL; import static megabasterd.MiscTools.deleteAllExceptSelectedTreeItems; import static megabasterd.MiscTools.deleteSelectedTreeItems; import static megabasterd.MiscTools.formatBytes; @@ -433,7 +434,7 @@ public final class FileGrabberDialog extends javax.swing.JDialog { swingReflectionInvoke("setEnabled", skip_rest_button, false); swingReflectionInvoke("setEnabled", warning_label, false); - MainPanel.THREAD_POOL.execute(new Runnable(){ + THREAD_POOL.execute(new Runnable(){ @Override public void run() { diff --git a/src/megabasterd/KissVideoStreamServer.java b/src/megabasterd/KissVideoStreamServer.java index c690ffafa..59c474638 100644 --- a/src/megabasterd/KissVideoStreamServer.java +++ b/src/megabasterd/KissVideoStreamServer.java @@ -19,7 +19,7 @@ import static megabasterd.MiscTools.swingReflectionInvoke; public final class KissVideoStreamServer { - public static final int TIMEOUT=30000; + public static final int TIMEOUT=30_000; public static final int EXP_BACKOFF_BASE=2; public static final int EXP_BACKOFF_SECS_RETRY=1; public static final int EXP_BACKOFF_MAX_WAIT_TIME=128; @@ -168,7 +168,7 @@ public final class KissVideoStreamServer { } try { - Thread.sleep(1000); + Thread.sleep(1_000); } catch (InterruptedException ex) {} } } @@ -230,7 +230,7 @@ public final class KissVideoStreamServer { } try { - Thread.sleep(1000); + Thread.sleep(1_000); } catch (InterruptedException ex) {} } } @@ -264,7 +264,7 @@ public final class KissVideoStreamServer { } try { - Thread.sleep(1000); + Thread.sleep(1_000); } catch (InterruptedException ex) {} } } diff --git a/src/megabasterd/KissVideoStreamServerHandler.java b/src/megabasterd/KissVideoStreamServerHandler.java index 69a707e24..5687a1290 100644 --- a/src/megabasterd/KissVideoStreamServerHandler.java +++ b/src/megabasterd/KissVideoStreamServerHandler.java @@ -158,7 +158,7 @@ public final class KissVideoStreamServerHandler implements HttpHandler { resheaders.add("Connection", "close"); - byte[] buffer = new byte[16*1024]; + byte[] buffer = new byte[16*1_024]; int reads; @@ -287,7 +287,7 @@ public final class KissVideoStreamServerHandler implements HttpHandler { _httpserver.getStreaming().remove(Thread.currentThread()); try { - Thread.sleep(1000); + Thread.sleep(1_000); } catch (InterruptedException ex) { getLogger(KissVideoStreamServerHandler.class.getName()).log(Level.SEVERE, null, ex); } diff --git a/src/megabasterd/MainPanel.java b/src/megabasterd/MainPanel.java index fbf98ee1b..d58c8199c 100644 --- a/src/megabasterd/MainPanel.java +++ b/src/megabasterd/MainPanel.java @@ -60,10 +60,10 @@ public final class MainPanel { public static final String VERSION="1.3"; public static final String USER_AGENT="Mozilla/5.0 (X11; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0"; - public static final int CONNECTION_TIMEOUT = 30000; - public static final int THROTTLE_SLICE_SIZE=16*1024; - public static final int STREAMER_PORT = 1337; - public static final int WATCHDOG_PORT = 1338; + public static final int CONNECTION_TIMEOUT = 30_000; + public static final int THROTTLE_SLICE_SIZE=16*1_024; + public static final int STREAMER_PORT = 1_337; + public static final int WATCHDOG_PORT = 1_338; public static final ExecutorService THREAD_POOL = newCachedThreadPool(); public static final Font FONT_DEFAULT = createAndRegisterFont("Gochi.ttf"); @@ -130,7 +130,7 @@ public final class MainPanel { THREAD_POOL.execute((_upload_manager = new UploadManager(this))); - THREAD_POOL.execute((_stream_supervisor = new StreamThrottlerSupervisor(_limit_download_speed?_max_dl_speed*1024:0, _limit_upload_speed?_max_up_speed*1024:0, THROTTLE_SLICE_SIZE))); + THREAD_POOL.execute((_stream_supervisor = new StreamThrottlerSupervisor(_limit_download_speed?_max_dl_speed*1_024:0, _limit_upload_speed?_max_up_speed*1_024:0, THROTTLE_SLICE_SIZE))); THREAD_POOL.execute((_clipboardspy = new ClipboardSpy())); diff --git a/src/megabasterd/MainPanelView.form b/src/megabasterd/MainPanelView.form index afde9db9e..ddb793261 100644 --- a/src/megabasterd/MainPanelView.form +++ b/src/megabasterd/MainPanelView.form @@ -177,10 +177,10 @@ - + - - + + @@ -244,7 +244,7 @@ - + @@ -352,7 +352,7 @@ - + diff --git a/src/megabasterd/MainPanelView.java b/src/megabasterd/MainPanelView.java index f7d177d75..f6f1c53ce 100644 --- a/src/megabasterd/MainPanelView.java +++ b/src/megabasterd/MainPanelView.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import static java.util.logging.Level.SEVERE; +import static java.util.logging.Logger.getLogger; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; @@ -38,7 +39,6 @@ import static megabasterd.MiscTools.i32a2bin; import static megabasterd.MiscTools.swingReflectionInvoke; import static megabasterd.MiscTools.swingReflectionInvokeAndWait; import static megabasterd.MiscTools.updateFont; -import static java.util.logging.Logger.getLogger; public final class MainPanelView extends javax.swing.JFrame { @@ -267,7 +267,7 @@ public final class MainPanelView extends javax.swing.JFrame { downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(downloads_panelLayout.createSequentialGroup() .addComponent(global_speed_down_label, javax.swing.GroupLayout.PREFERRED_SIZE, 404, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 338, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 258, Short.MAX_VALUE) .addComponent(pause_all_down_button)) .addGroup(downloads_panelLayout.createSequentialGroup() .addContainerGap() @@ -329,7 +329,7 @@ public final class MainPanelView extends javax.swing.JFrame { uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(uploads_panelLayout.createSequentialGroup() .addComponent(global_speed_up_label, javax.swing.GroupLayout.PREFERRED_SIZE, 404, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 338, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 258, Short.MAX_VALUE) .addComponent(pause_all_up_button)) .addGroup(uploads_panelLayout.createSequentialGroup() .addContainerGap() @@ -470,10 +470,10 @@ public final class MainPanelView extends javax.swing.JFrame { .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jTabbedPane1) + .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 796, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() - .addComponent(kiss_server_status, javax.swing.GroupLayout.PREFERRED_SIZE, 440, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(kiss_server_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(18, 18, 18) .addComponent(logo_label))) .addContainerGap()) ); @@ -636,9 +636,9 @@ public final class MainPanelView extends javax.swing.JFrame { _main_panel.loadUserSettings(); - _main_panel.getStream_supervisor().setMaxBytesPerSecInput(_main_panel.isLimit_download_speed()?_main_panel.getMax_dl_speed()*1024:0); + _main_panel.getStream_supervisor().setMaxBytesPerSecInput(_main_panel.isLimit_download_speed()?_main_panel.getMax_dl_speed()*1_024:0); - _main_panel.getStream_supervisor().setMaxBytesPerSecOutput( _main_panel.isLimit_upload_speed()?_main_panel.getMax_up_speed()*1024:0); + _main_panel.getStream_supervisor().setMaxBytesPerSecOutput( _main_panel.isLimit_upload_speed()?_main_panel.getMax_up_speed()*1_024:0); swingReflectionInvoke("setForeground", global_speed_down_label, _main_panel.isLimit_download_speed()?new Color(255,0,0):new Color(0,128,255)); diff --git a/src/megabasterd/MegaAPI.java b/src/megabasterd/MegaAPI.java index 29569c935..5e17a70b6 100644 --- a/src/megabasterd/MegaAPI.java +++ b/src/megabasterd/MegaAPI.java @@ -342,7 +342,7 @@ public final class MegaAPI { ByteArrayOutputStream byte_res = new ByteArrayOutputStream(); - byte[] buffer = new byte[16*1024]; + byte[] buffer = new byte[16*1_024]; int reads; diff --git a/src/megabasterd/MegaCrypterAPI.java b/src/megabasterd/MegaCrypterAPI.java index 48d545d03..227447a7a 100644 --- a/src/megabasterd/MegaCrypterAPI.java +++ b/src/megabasterd/MegaCrypterAPI.java @@ -60,7 +60,7 @@ public final class MegaCrypterAPI { ByteArrayOutputStream byte_res = new ByteArrayOutputStream(); - byte[] buffer = new byte[16*1024]; + byte[] buffer = new byte[16*1_024]; int reads; diff --git a/src/megabasterd/MiscTools.java b/src/megabasterd/MiscTools.java index 2a1de3861..c17bf0f13 100644 --- a/src/megabasterd/MiscTools.java +++ b/src/megabasterd/MiscTools.java @@ -534,7 +534,7 @@ public final class MiscTools { ByteArrayOutputStream byte_res = new ByteArrayOutputStream(); - byte[] buffer = new byte[16*1024]; + byte[] buffer = new byte[16*1_024]; int reads; @@ -554,7 +554,7 @@ public final class MiscTools { bytes = Math.max(bytes, 0L); - int pow = Math.min((int)((bytes>0L?Math.log(bytes):0) / Math.log(1024)), units.length - 1); + int pow = Math.min((int)((bytes>0L?Math.log(bytes):0) / Math.log(1_024)), units.length - 1); Double bytes_double = (double)bytes/(1 << (10 * pow)); diff --git a/src/megabasterd/SettingsDialog.java b/src/megabasterd/SettingsDialog.java index 8a9629927..5ddb4a5d1 100644 --- a/src/megabasterd/SettingsDialog.java +++ b/src/megabasterd/SettingsDialog.java @@ -16,6 +16,7 @@ import javax.swing.SpinnerNumberModel; import javax.swing.table.DefaultTableModel; import static megabasterd.DBTools.insertSettingValueInDB; import static megabasterd.MainPanel.FONT_DEFAULT; +import static megabasterd.MainPanel.THREAD_POOL; import static megabasterd.MiscTools.Bin2BASE64; import static megabasterd.MiscTools.i32a2bin; import static megabasterd.MiscTools.swingReflectionInvoke; @@ -704,7 +705,7 @@ public final class SettingsDialog extends javax.swing.JDialog { final SettingsDialog dialog = this; - MainPanel.THREAD_POOL.execute(new Runnable(){ + THREAD_POOL.execute(new Runnable(){ @Override public void run() { diff --git a/src/megabasterd/SpeedMeter.java b/src/megabasterd/SpeedMeter.java index 7ae7b6063..f9f3868d3 100644 --- a/src/megabasterd/SpeedMeter.java +++ b/src/megabasterd/SpeedMeter.java @@ -7,7 +7,7 @@ import static megabasterd.MiscTools.formatBytes; public final class SpeedMeter implements Runnable, SecureNotifiable { - public static final int SLEEP = 3000; + public static final int SLEEP = 3_000; private long _progress; private final Transference _transference; private final GlobalSpeedMeter _gspeed; @@ -120,7 +120,7 @@ public final class SpeedMeter implements Runnable, SecureNotifiable } else if( p > _progress) { - double sleep_time = ((double)SpeedMeter.SLEEP*(no_data_count+1))/1000 ; + double sleep_time = ((double)SpeedMeter.SLEEP*(no_data_count+1))/1_000 ; double current_speed = (p - _progress) / sleep_time; diff --git a/src/megabasterd/StreamThrottlerSupervisor.java b/src/megabasterd/StreamThrottlerSupervisor.java index 2a965243f..39c3eec53 100644 --- a/src/megabasterd/StreamThrottlerSupervisor.java +++ b/src/megabasterd/StreamThrottlerSupervisor.java @@ -147,7 +147,7 @@ public final class StreamThrottlerSupervisor implements Runnable, SecureNotifiab secureNotifyAll(); try { - Thread.sleep(1000); + Thread.sleep(1_000); } catch (InterruptedException ex) { getLogger(StreamThrottlerSupervisor.class.getName()).log(Level.SEVERE, null, ex); } diff --git a/src/megabasterd/StreamerDialog.java b/src/megabasterd/StreamerDialog.java index cf6f2837d..58f87583a 100644 --- a/src/megabasterd/StreamerDialog.java +++ b/src/megabasterd/StreamerDialog.java @@ -2,11 +2,14 @@ package megabasterd; import java.awt.Font; import java.awt.event.WindowEvent; +import static java.awt.event.WindowEvent.WINDOW_CLOSING; import java.io.IOException; import java.util.logging.Level; +import java.util.logging.Logger; import static java.util.logging.Logger.getLogger; import javax.swing.JOptionPane; import static megabasterd.MainPanel.FONT_DEFAULT; +import static megabasterd.MainPanel.THREAD_POOL; import static megabasterd.MiscTools.copyTextToClipboard; import static megabasterd.MiscTools.deflateURL; import static megabasterd.MiscTools.extractFirstMegaLinkFromString; @@ -109,81 +112,84 @@ public final class StreamerDialog extends javax.swing.JDialog implements Clipboa private void dance_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dance_buttonActionPerformed - - String link=((String)swingReflectionInvokeAndWaitForReturn("getText", original_link_textfield)).trim(); - - if(link.length() == 0) { - - JOptionPane.showMessageDialog(this, "Please, paste a mega/megacrypter link!"); - - swingReflectionInvoke("setText", original_link_textfield, ""); - - } else { - - try { - - link = CryptTools.decryptMegaDownloaderLink(link); - - } catch (Exception ex) { - getLogger(StreamerDialog.class.getName()).log(Level.SEVERE, null, ex); - } - - String data; - - link=link.replace("/#!N?", "/#N!"); - - if( findFirstRegex("://mega(\\.co)?\\.nz/#[^fF]", link, 0) != null) - { - data=findFirstRegex("/#(N?!.+)", link, 1); - - _cookLink("http://localhost:1337/video/mega/"+data); - - } else if( (data=findFirstRegex("https?://([^/]+/![^!]+![0-9a-fA-F]+)", link, 1)) != null) { - - _cookLink("http://localhost:1337/video/"+data); - - } else { - - JOptionPane.showMessageDialog(this, "Please, paste a mega/megacrypter link!"); - - swingReflectionInvoke("setText", original_link_textfield, ""); - } - } - }//GEN-LAST:event_dance_buttonActionPerformed - - private void _cookLink(final String streamlink) - { swingReflectionInvoke("setEnabled", dance_button, false); swingReflectionInvoke("setEnabled", original_link_textfield, false); - final StreamerDialog streamer_run = this; + final StreamerDialog tthis = this; - MainPanel.THREAD_POOL.execute(new Runnable(){ + THREAD_POOL.execute(new Runnable(){ @Override public void run() { - try { - copyTextToClipboard(deflateURL(streamlink)); - } catch (IOException ex) { - getLogger(StreamerDialog.class.getName()).log(Level.SEVERE, null, ex); - } - - JOptionPane.showMessageDialog(streamer_run, "Streaming link was copied to clipboard!\n(Remember to keep MegaBasterd running in background while playing)"); - - streamer_run.dispose(); - - streamer_run.getParent().dispatchEvent(new WindowEvent(streamer_run, WindowEvent.WINDOW_CLOSING)); - - } - }); - } + boolean error=false; + + String stream_link=null; - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton dance_button; - private javax.swing.JTextField original_link_textfield; - private javax.swing.JLabel put_label; - // End of variables declaration//GEN-END:variables + String link=((String)swingReflectionInvokeAndWaitForReturn("getText", original_link_textfield)).trim(); + + if(link.length() > 0) { + + try { + + link = CryptTools.decryptMegaDownloaderLink(link); + + } catch (Exception ex) { + getLogger(StreamerDialog.class.getName()).log(Level.SEVERE, null, ex); + } + + String data; + + link=link.replace("/#!N?", "/#N!"); + + if( findFirstRegex("://mega(\\.co)?\\.nz/#[^fF]", link, 0) != null) + { + data=findFirstRegex("/#(N?!.+)", link, 1); + + stream_link = "http://localhost:1337/video/mega/"+data; + + } else if( (data=findFirstRegex("https?://([^/]+/![^!]+![0-9a-fA-F]+)", link, 1)) != null) { + + stream_link = "http://localhost:1337/video/"+data; + + } else { + + error = true; + } + + } else { + + error = true; + } + + if(error) { + + JOptionPane.showMessageDialog(tthis, "Please, paste a mega/megacrypter link!"); + + swingReflectionInvoke("setText", original_link_textfield, ""); + + swingReflectionInvoke("setEnabled", dance_button, true); + + swingReflectionInvoke("setEnabled", original_link_textfield, true); + + } else { + + try { + + copyTextToClipboard(deflateURL(stream_link)); + + JOptionPane.showMessageDialog(tthis, "Streaming link was copied to clipboard!\n(Remember to keep MegaBasterd running in background while playing)"); + + tthis.dispose(); + + tthis.getParent().dispatchEvent(new WindowEvent(tthis, WINDOW_CLOSING)); + + } catch (IOException ex) { + Logger.getLogger(StreamerDialog.class.getName()).log(Level.SEVERE, null, ex); + } + } + + }}); + }//GEN-LAST:event_dance_buttonActionPerformed @Override public void notifyClipboardChange() { @@ -195,5 +201,12 @@ public final class StreamerDialog extends javax.swing.JDialog implements Clipboa swingReflectionInvoke("setText", original_link_textfield, link); } } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton dance_button; + private javax.swing.JTextField original_link_textfield; + private javax.swing.JLabel put_label; + // End of variables declaration//GEN-END:variables + } diff --git a/src/megabasterd/TransferenceManager.java b/src/megabasterd/TransferenceManager.java index 30ad3346e..c7c34b6a8 100644 --- a/src/megabasterd/TransferenceManager.java +++ b/src/megabasterd/TransferenceManager.java @@ -5,9 +5,9 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Level; +import static java.util.logging.Logger.getLogger; import javax.swing.JPanel; import static megabasterd.MiscTools.swingReflectionInvoke; -import static java.util.logging.Logger.getLogger; /** *