From f48d7fc4123b91e2116085127b7c14298da99f6c Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 22 Mar 2017 14:08:22 +0000 Subject: [PATCH] Set downloadDir for magnets Hide search button, doesn't work Replace logo --- .../org/klomp/snark/rpc/XMWebUIPlugin.java | 183 +----------------- src/jsp/web/index.html | 6 +- .../web/style/i2p/images/graphics/i2plogo.png | Bin 0 -> 8514 bytes 3 files changed, 13 insertions(+), 176 deletions(-) create mode 100644 src/jsp/web/style/i2p/images/graphics/i2plogo.png diff --git a/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java b/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java index b5c09ea..6c8ad0c 100644 --- a/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java +++ b/src/java/org/klomp/snark/rpc/XMWebUIPlugin.java @@ -3320,6 +3320,9 @@ XMWebUIPlugin { // downloadDir | string | tr_torrent if (storage != null) { value = storage.getBase().getAbsolutePath(); + } else { + //value = "TBD"; + value = _manager.getDataDir().getAbsolutePath(); } } else if (field.equals("downloadedEver")) { // RPC v0 @@ -3540,10 +3543,12 @@ XMWebUIPlugin { long needed = download.getNeededLength(); if (needed < 0) needed = download.getRemainingLength(); - if (needed < 0) - needed = 1; // TODO - long whenDone = download.getTotalLength() - download.getSkippedLength(); - value = 1.0f - (needed / (float) whenDone); + if (needed < 0) { + value = 0.0f; + } else { + long whenDone = download.getTotalLength() - download.getSkippedLength(); + value = 1.0f - (needed / (float) whenDone); + } } else if (field.equals("pieces")) { // RPC v5 value = torrentGet_pieces(download); @@ -5340,176 +5345,6 @@ XMWebUIPlugin { } } -/**** - private class - MagnetDownload - implements Snark - { - private URL magnet_url; - private String name; - private byte[] hash; - private long create_time; - private Map attributes = new HashMap(); - private String temp_dir = _util.getTempDir().getAbsolutePath(); - private Throwable error; - - private - MagnetDownload( - URL _magnet, - String friendlyName ) - { - create_time = _context.clock().now(); - magnet_url = _magnet; - String str = magnet_url.toExternalForm(); - int pos = str.indexOf( '?' ); - if ( pos != -1 ) { - str = str.substring( pos+1 ); - } - String[] args = str.split( "&" ); - Map arg_map = new HashMap(); - for ( String arg: args ) { - String[] bits = arg.split( "=" ); - if ( bits.length == 2 ) { - try { - String lhs = bits[0].trim().toLowerCase( Locale.US ); - String rhs = URLDecoder.decode( bits[1].trim(), "UTF-8"); - if ( lhs.equals( "xt" )) { - if ( rhs.toLowerCase( Locale.US ).startsWith( "urn:btih:" )) { - arg_map.put( lhs, rhs ); - } else { - String existing = arg_map.get( "xt" ); - if ( existing == null || - ( !existing.toLowerCase( Locale.US ).startsWith( "urn:btih:" ) && rhs.startsWith( "urn:sha1:" ))) { - arg_map.put( lhs, rhs ); - } - } - } else { - arg_map.put( lhs, rhs ); - } - } catch( Throwable e ) { - } - } - } - hash = new byte[0]; - String hash_str = arg_map.get( "xt" ); - if ( hash_str != null ) { - hash_str = hash_str.toLowerCase( Locale.US ); - if ( hash_str.startsWith( "urn:btih:" ) || hash_str.startsWith( "urn:sha1" )) { - hash = UrlUtils.decodeSHA1Hash( hash_str.substring( 9 )); - } - } - name = arg_map.get( "dn" ); - if ( name == null ) { - if ( friendlyName != null ) { - name = friendlyName; - } else if ( hash == null ) { - name = magnet_url.toExternalForm(); - } else { - name = Base32.encode( hash ); - } - } - name = "Magnet download for '" + name + "'"; - getID( this, true ); - } - - private long - getCreateTime() - { - return( create_time ); - } - - private URL - getMagnetURL() - { - return( magnet_url ); - } - - public boolean - isStub() - { - return( true ); - } - - public Snark - destubbify() - throws DownloadException - { - throw( new DownloadException( "Not supported" )); - } - - public String - getName() - { - return( name ); - } - - public byte[] - getInfoHash() - { - return( hash ); - } - - public MetaInfo - getTorrent() - { - return( null ); - } - - public long - getTorrentSize() - { - return( 16*1024 ); // dont know the size - } - - public String - getSavePath() - { - return( temp_dir ); - } - - private void - setError( - Throwable e ) - { - error = e; - } - - private Throwable - getError() - { - return( error ); - } - - public SnarkFile[] - getStubFiles() - { - return( new SnarkFile[0]); - } - - public long - getLongAttribute( - TorrentAttribute attribute ) - { - Long l = attributes.get( attribute ); - return( l==null?0:l ); - } - - public void - setLongAttribute( - TorrentAttribute attribute, - long value) - { - attributes.put( attribute, value ); - } - - public void - remove() - throws DownloadException - { - } - } -****/ - /** * Copied from Vuze UrlUtils.java */ diff --git a/src/jsp/web/index.html b/src/jsp/web/index.html index 941dfa1..4cf7a49 100644 --- a/src/jsp/web/index.html +++ b/src/jsp/web/index.html @@ -49,7 +49,7 @@ - Vuze Remote + I2PSnark Remote @@ -62,7 +62,9 @@
+
@@ -92,7 +94,7 @@
diff --git a/src/jsp/web/style/i2p/images/graphics/i2plogo.png b/src/jsp/web/style/i2p/images/graphics/i2plogo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd64fbcc2fbfdca9aa05eebecdb5d0cfbe04c878 GIT binary patch literal 8514 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 literal 0 HcmV?d00001