Package com.biglybt.plugin.magnet
Class MagnetPlugin
- java.lang.Object
-
- com.biglybt.plugin.magnet.MagnetPlugin
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
MagnetPlugin.DownloadActivity
private static class
MagnetPlugin.DownloadResult
-
Field Summary
-
Constructor Summary
Constructors Constructor Description MagnetPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private MagnetPlugin.DownloadResult
_downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long _timeout, int flags)
private MagnetPlugin.DownloadResult
_downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long _timeout, int flags, DownloadManager[] cancelled_download)
void
addListener(MagnetPluginListener listener)
java.lang.String
addSource(Download download, java.lang.String magnet, java.net.InetSocketAddress address)
private byte[]
addTrackersAndWebSeedsEtc(byte[] torrent_data, java.lang.String args, java.util.Set<java.lang.String> networks, java.util.List<java.lang.String> initial_tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
private byte[]
addTrackersAndWebSeedsEtc(MagnetPlugin.DownloadResult result, java.lang.String args, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
byte[]
badge()
protected void
doSecondaryLookup(MagnetPluginProgressListener listener, java.lang.Object[] result, byte[] hash, java.util.Set<java.lang.String> networks_enabled, java.lang.String args)
byte[]
download(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata, long timeout, int flags)
private MagnetPlugin.DownloadResult
downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long timeout, int flags)
java.util.List<java.lang.String>
getExtraTrackers()
protected java.util.List<java.lang.String>
getInitialTags(DownloadManager from_dm)
java.net.URL
getMagnetURL(byte[] hash)
java.net.URL
getMagnetURL(TOTorrent torrent)
protected java.lang.String
getMessageText(java.lang.String resource, java.lang.String... params)
protected byte[]
getSecondaryLookupResult(java.lang.Object[] result)
void
initialize(PluginInterface _plugin_interface)
This method is called when the Plugin is loaded by the clientboolean
isNetworkEnabled(java.lang.String net)
static void
load(PluginInterface plugin_interface)
private byte[]
recoverableDownload(MagnetURIHandlerProgressListener muh_listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata, long timeout, boolean is_recovering)
private void
recoverDownloads()
void
removeListener(MagnetPluginListener listener)
protected void
setInitialMetadata(DownloadManager to_dm, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
protected void
setInitialMetadata(TOTorrent torrent, DownloadManager from_dm)
private boolean
setInitialMetadata(TOTorrent torrent, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
protected boolean
updateInitialMetadata(java.util.Map map, DownloadManager from_dm)
protected void
updateLocale(LocaleUtilities lu)
private void
updateRecoverableDownloads()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.biglybt.pif.Plugin
getInitialProperties
-
-
-
-
Field Detail
-
FL_NONE
public static final int FL_NONE
- See Also:
- Constant Field Values
-
FL_DISABLE_MD_LOOKUP
public static final int FL_DISABLE_MD_LOOKUP
- See Also:
- Constant Field Values
-
FL_NO_MD_LOOKUP_DELAY
public static final int FL_NO_MD_LOOKUP_DELAY
- See Also:
- Constant Field Values
-
SECONDARY_LOOKUP
private static final java.lang.String SECONDARY_LOOKUP
- See Also:
- Constant Field Values
-
SECONDARY_LOOKUP_DELAY
private static final int SECONDARY_LOOKUP_DELAY
- See Also:
- Constant Field Values
-
SECONDARY_LOOKUP_MAX_TIME
private static final int SECONDARY_LOOKUP_MAX_TIME
- See Also:
- Constant Field Values
-
MD_LOOKUP_DELAY_SECS_DEFAULT
private static final int MD_LOOKUP_DELAY_SECS_DEFAULT
- See Also:
- Constant Field Values
-
MD_EXTRA_TRACKERS
private static final java.lang.String[] MD_EXTRA_TRACKERS
-
PLUGIN_NAME
private static final java.lang.String PLUGIN_NAME
- See Also:
- Constant Field Values
-
PLUGIN_CONFIGSECTION_ID
private static final java.lang.String PLUGIN_CONFIGSECTION_ID
- See Also:
- Constant Field Values
-
SOURCE_VALUES
public static final java.lang.String[] SOURCE_VALUES
-
SOURCE_KEYS
public static final java.lang.String[] SOURCE_KEYS
-
SOURCE_STRINGS
public static final java.lang.String[] SOURCE_STRINGS
-
DM_TAG_CACHE
protected static final java.lang.Object DM_TAG_CACHE
-
DM_CATEGORY_CACHE
protected static final java.lang.Object DM_CATEGORY_CACHE
-
plugin_interface
private PluginInterface plugin_interface
-
listeners
private CopyOnWriteList listeners
-
first_download
private boolean first_download
-
PLUGIN_DOWNLOAD_TIMEOUT_SECS_DEFAULT
private static final int PLUGIN_DOWNLOAD_TIMEOUT_SECS_DEFAULT
- See Also:
- Constant Field Values
-
md_lookup
private BooleanParameter md_lookup
-
md_lookup_delay
private IntParameter md_lookup_delay
-
md_extra_trackers
private StringParameter md_extra_trackers
-
timeout_param
private IntParameter timeout_param
-
sources_param
private StringListParameter sources_param
-
sources_extra_param
private IntParameter sources_extra_param
-
magnet_recovery
private BooleanParameter magnet_recovery
-
magnet_recovery_concurrency
private IntParameter magnet_recovery_concurrency
-
net_params
private java.util.Map<java.lang.String,BooleanParameter> net_params
-
download_activities
private static ByteArrayHashMap<MagnetPlugin.DownloadActivity> download_activities
-
-
Method Detail
-
load
public static void load(PluginInterface plugin_interface)
-
initialize
public void initialize(PluginInterface _plugin_interface)
Description copied from interface:Plugin
This method is called when the Plugin is loaded by the client- Specified by:
initialize
in interfacePlugin
- Parameters:
_plugin_interface
- the interface that the plugin must use to communicate with the client
-
addSource
public java.lang.String addSource(Download download, java.lang.String magnet, java.net.InetSocketAddress address)
-
updateLocale
protected void updateLocale(LocaleUtilities lu)
-
recoverDownloads
private void recoverDownloads()
-
updateRecoverableDownloads
private void updateRecoverableDownloads()
-
recoverableDownload
private byte[] recoverableDownload(MagnetURIHandlerProgressListener muh_listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata, long timeout, boolean is_recovering) throws MagnetURIHandlerException
- Throws:
MagnetURIHandlerException
-
isNetworkEnabled
public boolean isNetworkEnabled(java.lang.String net)
-
getMagnetURL
public java.net.URL getMagnetURL(byte[] hash)
-
getMagnetURL
public java.net.URL getMagnetURL(TOTorrent torrent) throws TOTorrentException
- Throws:
TOTorrentException
-
getExtraTrackers
public java.util.List<java.lang.String> getExtraTrackers()
-
badge
public byte[] badge()
-
download
public byte[] download(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata, long timeout, int flags) throws MagnetURIHandlerException
- Throws:
MagnetURIHandlerException
-
addTrackersAndWebSeedsEtc
private byte[] addTrackersAndWebSeedsEtc(MagnetPlugin.DownloadResult result, java.lang.String args, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
-
addTrackersAndWebSeedsEtc
private byte[] addTrackersAndWebSeedsEtc(byte[] torrent_data, java.lang.String args, java.util.Set<java.lang.String> networks, java.util.List<java.lang.String> initial_tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
-
getInitialTags
protected java.util.List<java.lang.String> getInitialTags(DownloadManager from_dm)
-
updateInitialMetadata
protected boolean updateInitialMetadata(java.util.Map map, DownloadManager from_dm)
-
setInitialMetadata
protected void setInitialMetadata(TOTorrent torrent, DownloadManager from_dm)
-
setInitialMetadata
protected void setInitialMetadata(DownloadManager to_dm, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
-
setInitialMetadata
private boolean setInitialMetadata(TOTorrent torrent, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> other_metadata)
-
downloadSupport
private MagnetPlugin.DownloadResult downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long timeout, int flags) throws MagnetURIHandlerException
- Throws:
MagnetURIHandlerException
-
_downloadSupport
private MagnetPlugin.DownloadResult _downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long _timeout, int flags) throws MagnetURIHandlerException
- Throws:
MagnetURIHandlerException
-
_downloadSupport
private MagnetPlugin.DownloadResult _downloadSupport(MagnetPluginProgressListener listener, byte[] hash, java.lang.String args, java.net.InetSocketAddress[] sources, java.util.List<java.lang.String> tags, java.util.Map<java.lang.String,java.lang.Object> initial_metadata, long _timeout, int flags, DownloadManager[] cancelled_download) throws MagnetURIHandlerException
- Throws:
MagnetURIHandlerException
-
doSecondaryLookup
protected void doSecondaryLookup(MagnetPluginProgressListener listener, java.lang.Object[] result, byte[] hash, java.util.Set<java.lang.String> networks_enabled, java.lang.String args)
-
getSecondaryLookupResult
protected byte[] getSecondaryLookupResult(java.lang.Object[] result) throws ResourceDownloaderException
- Throws:
ResourceDownloaderException
-
getMessageText
protected java.lang.String getMessageText(java.lang.String resource, java.lang.String... params)
-
addListener
public void addListener(MagnetPluginListener listener)
-
removeListener
public void removeListener(MagnetPluginListener listener)
-
-