Package com.biglybt.core.util
Class TorrentUtils
- java.lang.Object
-
- com.biglybt.core.util.TorrentUtils
-
public class TorrentUtils extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TorrentUtils.DNSTXTEntry
private static class
TorrentUtils.DNSTXTPortInfo
static interface
TorrentUtils.ExtendedTorrent
static interface
TorrentUtils.PotentialTorrentDeletionListener
static interface
TorrentUtils.TorrentAnnounceURLChangeListener
static interface
TorrentUtils.torrentAttributeListener
static class
TorrentUtils.torrentDelegate
private static class
TorrentUtils.URLGroup
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.atomic.AtomicLong
announce_group_uid_next
private static boolean
bSaveTorrentBackup
private static java.util.List<byte[]>
created_torrents
private static java.util.Set<HashWrapper>
created_torrents_set
private static AsyncDispatcher
dispatcher
private static boolean
DNS_HANDLING_ENABLE
private static int
DNS_HISTORY_TIMEOUT
private static java.util.Map<java.lang.String,TorrentUtils.DNSTXTEntry>
dns_mapping
private static int
dns_mapping_seq_count
private static ThreadPool
dns_threads
(package private) static DNSUtils.DNSUtilsIntf
dns_utils
(package private) static java.util.Map
fluffThombstone
private static java.util.Set<java.lang.String>
ignore_files_set
static long
MAX_TORRENT_FILE_SIZE
private static java.lang.String
MEM_ONLY_TORRENT_PATH
private static java.lang.String
NO_VALID_URL_URL
private static long
PC_MARKER
private static int
PIECE_HASH_TIMEOUT
private static CopyOnWriteList<TorrentUtils.PotentialTorrentDeletionListener>
ptd_listeners
private static java.util.Map<DownloadManager,java.lang.Integer>
ptd_map
private static java.util.Map<TorrentUtils.PotentialTorrentDeletionListener,DownloadManager[]>
ptdl_last
private static java.util.Set<java.lang.String>
skip_extensions_set
private static java.util.Set<java.lang.Object>
skip_file_set
private static java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.Object>>
tls
private static CopyOnWriteList<TorrentUtils.torrentAttributeListener>
torrent_attribute_listeners
private static java.lang.String
TORRENT_AZ_PROP_DHT_BACKUP_ENABLE
private static java.lang.String
TORRENT_AZ_PROP_DHT_BACKUP_REQUESTED
static java.lang.String
TORRENT_AZ_PROP_DISPLAY_NAME
static java.lang.String
TORRENT_AZ_PROP_HASHTREE_STATE
static java.lang.String
TORRENT_AZ_PROP_HYBRID_HASH_V2
static java.lang.String
TORRENT_AZ_PROP_INITIAL_LINKAGE
static java.lang.String
TORRENT_AZ_PROP_INITIAL_LINKAGE2
private static java.lang.String
TORRENT_AZ_PROP_INITIAL_METADATA
private static java.lang.String
TORRENT_AZ_PROP_INITIAL_TAGS
private static java.lang.String
TORRENT_AZ_PROP_NETWORK_CACHE
static java.lang.String
TORRENT_AZ_PROP_OBTAINED_FROM
static java.lang.String
TORRENT_AZ_PROP_ORIGINAL_HASH
private static java.lang.String
TORRENT_AZ_PROP_PEER_CACHE
private static java.lang.String
TORRENT_AZ_PROP_PEER_CACHE_VALID
private static java.lang.String
TORRENT_AZ_PROP_PLUGINS
private static java.lang.String
TORRENT_AZ_PROP_TAG_CACHE
private static java.lang.String
TORRENT_AZ_PROP_TORRENT_FLAGS
(package private) static java.util.Map
torrent_delegates
(package private) static java.util.concurrent.atomic.AtomicLong
torrent_delete_level
(package private) static long
torrent_delete_time
static int
TORRENT_FLAG_DISABLE_RCM
static int
TORRENT_FLAG_LOW_NOISE
static int
TORRENT_FLAG_METADATA_TORRENT
(package private) static CopyOnWriteList<TorrentUtils.TorrentAnnounceURLChangeListener>
torrent_url_changed_listeners
(package private) static java.util.HashSet
torrentFluffKeyset
private static boolean
TRACE_DNS
private static java.util.Set<java.lang.String>
tracker_addresses
private static java.util.Set<java.lang.String>
tracker_hosts
private static java.util.regex.Pattern
txt_pattern
-
Constructor Summary
Constructors Constructor Description TorrentUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addCreatedTorrent(TOTorrent torrent)
static void
addPotentialTorrentDeletionListener(TorrentUtils.PotentialTorrentDeletionListener l)
static void
addTorrentAttributeListener(TorrentUtils.torrentAttributeListener listener)
static void
addTorrentURLChangeListener(TorrentUtils.TorrentAnnounceURLChangeListener listener)
static boolean
announceGroupsContainsURL(TOTorrent torrent, java.lang.String url)
static void
announceGroupsInsertFirst(TOTorrent torrent, java.lang.String first_url)
static void
announceGroupsInsertFirst(TOTorrent torrent, java.net.URL first_url)
static void
announceGroupsInsertFirst(TOTorrent torrent, java.net.URL[] first_urls)
static void
announceGroupsInsertLast(TOTorrent torrent, java.net.URL[] first_urls)
static void
announceGroupsSetFirst(TOTorrent torrent, java.lang.String first_url)
static java.util.List<java.util.List<java.lang.String>>
announceGroupsToList(TOTorrent torrent)
static java.lang.String
announceGroupsToText(TOTorrent torrent)
static java.lang.String
announceGroupsToText(java.util.List<java.util.List<java.lang.String>> group)
static java.util.List<java.util.List<java.lang.String>>
announceTextToGroups(java.lang.String text)
private static java.util.List<java.net.URL>
applyAllDNSMods(java.net.URL url)
private static java.net.URL
applyDNSMods(java.net.URL url)
private static TOTorrentAnnounceURLGroup
applyDNSMods(java.net.URL announce_url, TOTorrentAnnounceURLGroup group)
static boolean
areIdentical(java.util.List<java.util.List<java.lang.String>> ll1, java.util.List<java.util.List<java.lang.String>> ll2)
static boolean
canMergeAnnounceURLs(TOTorrent new_torrent, TOTorrent dest_torrent)
private static void
checkDNSTimeouts()
static void
clearTorrentFileName(TOTorrent torrent)
static TOTorrent
cloneTorrent(TOTorrent torrent)
static void
copyToFile(TOTorrent torrent, java.io.File file)
static java.io.File
copyTorrentFileToSaveDir(java.io.File f, boolean persistent)
Copy a file to the Torrent Save Directory, taking into account all the user config options related to that.static void
delete(TOTorrent torrent)
static void
delete(java.io.File torrent_file, boolean force_no_recycle)
static TOTorrent
download(java.net.URL url)
static TOTorrent
download(java.net.URL url, long timeout)
static void
endTorrentDelete(DownloadManager[] dms)
static java.lang.String
exceptionToText(TOTorrentException e)
private static java.util.List<java.util.List<java.lang.String>>
expandTrackerLists(java.util.List<java.util.List<java.lang.String>> groups)
private static void
fireAttributeListener(TOTorrent torrent, java.lang.String attribute, java.lang.Object value)
static long
getAnnounceGroupUID()
private static java.util.Map
getAzureusPrivateProperties(TOTorrent torrent)
private static java.util.Map
getAzureusProperties(TOTorrent torrent)
static java.util.List<java.util.List<java.lang.String>>
getClone(java.util.List<java.util.List<java.lang.String>> lls)
private static java.lang.String
getContentMapString(TOTorrent torrent, java.lang.String key)
static java.net.URL
getDecentralisedEmptyURL()
static java.net.URL
getDecentralisedURL(byte[] hash)
static java.net.URL
getDecentralisedURL(TOTorrent torrent)
static boolean
getDHTBackupEnabled(TOTorrent torrent)
static java.lang.String
getDisplayName(TOTorrent torrent)
private static TorrentUtils.DNSTXTEntry
getDNSTXTEntry(java.lang.String host, boolean force_update, java.util.List<java.lang.String> already_got_records)
static TorrentUtils.DNSTXTEntry
getDNSTXTEntry(java.net.URL url)
static DownloadManager
getDownloadManager(HashWrapper hash)
Get the DownloadManager related to a torrent's hashBytesstatic boolean
getFlag(TOTorrent torrent, int flag)
static byte[]
getHashForDisplay(TOTorrent torrent)
static java.util.Map
getHashTreeState(TOTorrent torrent)
static java.util.Set<java.lang.String>
getIgnoreSet()
private static java.util.Set<java.lang.String>
getIgnoreSetSupport(boolean force)
static java.util.Map<java.lang.Integer,java.io.File>
getInitialLinkage(TOTorrent torrent)
static java.util.Map<java.lang.String,java.lang.Object>
getInitialMetadata(DownloadManager dm)
static java.util.Map<java.lang.String,java.lang.Object>
getInitialMetadata(TOTorrent torrent)
static java.util.List<java.lang.String>
getInitialTags(TOTorrent torrent)
static java.lang.String
getLocalisedName(TOTorrent torrent)
static long
getMillisecondsSinceLastTorrentDelete()
static java.util.List<java.lang.String>
getNetworkCache(TOTorrent torrent)
static java.lang.String
getObtainedFrom(TOTorrent torrent)
static byte[]
getOriginalHash(TOTorrent torrent)
static java.util.Map
getPeerCache(TOTorrent torrent)
static java.util.Map
getPluginMapProperty(TOTorrent torrent, java.lang.String name)
static java.lang.String
getPluginStringProperty(TOTorrent torrent, java.lang.String name)
static boolean
getPrivate(TOTorrent torrent)
static java.util.Set<java.lang.String>
getSkipExtensionsSet()
private static java.util.Set<java.lang.String>
getSkipExtensionsSetSupport(boolean force)
static boolean[]
getSkipFiles(TOTorrent torrent)
static java.util.Set<java.lang.Object>
getSkipFileSet()
private static java.util.Set<java.lang.Object>
getSkipFileSetSupport(boolean force)
static java.util.List<java.lang.String>
getTagCache(TOTorrent torrent)
static java.lang.Object
getTLS()
get tls for cloning onto another threadstatic java.lang.String
getTLSDescription()
static TOTorrent
getTLSTorrent()
static HashWrapper
getTLSTorrentHash()
static java.lang.String
getTorrentFileName(TOTorrent torrent)
static java.lang.String
getTorrentFileName(TOTorrent torrent, boolean is_mandatory)
static java.util.Set<java.lang.String>
getUniqueTrackerHosts(TOTorrent torrent)
static java.util.Set<java.lang.String>
getUniqueTrackerHosts(TOTorrent torrent, boolean include_port)
static boolean
isCreatedTorrent(TOTorrent torrent)
static boolean
isDecentralised(TOTorrent torrent)
static boolean
isDecentralised(java.lang.String host)
static boolean
isDecentralised(java.net.URL url)
static boolean
isDHTBackupRequested(TOTorrent torrent)
static boolean
isFeaturedContent(TOTorrent torrent)
static boolean
isReallyPrivate(TOTorrent torrent)
static boolean
isTorrentDeleting()
static boolean
isTorrentFile(java.lang.String filename)
Runs a file through a series of test to verify if it is a torrent.static boolean
isTrackerAddress(TOTorrent torrent, java.net.InetSocketAddress isa)
static void
listToAnnounceGroups(java.util.List<java.util.List<java.lang.String>> groups, TOTorrent torrent)
static TOTorrentAnnounceURLSet[]
listToAnnounceSets(java.util.List<java.util.List<java.lang.String>> groups, TOTorrent torrent)
This method DOES NOT MODIFY THE TORRENTstatic void
main(java.lang.String[] args)
static boolean
mergeAnnounceURLs(TOTorrent new_torrent, TOTorrent dest_torrent)
static java.util.List<java.util.List<java.lang.String>>
mergeAnnounceURLs(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.util.List<java.lang.String>> merge_urls)
static boolean
move(java.io.File from_torrent, java.io.File to_torrent)
static java.lang.String
nicePrintTorrentHash(TOTorrent torrent)
A nice string of a Torrent's hashstatic java.lang.String
nicePrintTorrentHash(TOTorrent torrent, boolean tight)
A nice string of a Torrent's hashstatic boolean
propagateExportability(TOTorrent source, java.io.File dest)
static TorrentUtils.ExtendedTorrent
readDelegateFromFile(java.io.File file, boolean force_initial_discard)
If you set "create_delegate" to true then you must understand that this results is piece hashes being discarded and then re-read from the torrent file if needed Therefore, if you delete the original torrent file you're going to get errors if you access the pieces after this (and they've been discarded)static TOTorrent
readFromBEncodedInputStream(java.io.InputStream is)
static TOTorrent
readFromFile(java.io.File file, boolean create_delegate)
static TOTorrent
readFromFile(java.io.File file, boolean create_delegate, boolean force_initial_discard)
static void
recursiveEmptyDirDelete(java.io.File f)
Deletes the given dir and all dirs underneath if empty.static void
recursiveEmptyDirDelete(java.io.File f, boolean log_warnings)
Same as #recursiveEmptyDirDelete(File), except allows disabling of logging of any warningsstatic void
registerMapFluff(java.lang.String[] fluff)
Register keys that are used for heavyweight maps that should be discarded when the torrent is not in use Make sure these keys are only ever used for Map objects!static java.util.List<java.util.List<java.lang.String>>
removeAnnounceURLs(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.util.List<java.lang.String>> remove_urls, boolean use_prefix_match)
static java.util.List<java.util.List<java.lang.String>>
removeAnnounceURLs2(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.lang.String> remove_urls, boolean use_prefix_match)
static void
removeCreatedTorrent(TOTorrent torrent)
static void
removePotentialTorrentDeletionListener(TorrentUtils.PotentialTorrentDeletionListener l)
static void
removeTorrentAttributeListener(TorrentUtils.torrentAttributeListener listener)
static void
removeTorrentURLChangeListener(TorrentUtils.TorrentAnnounceURLChangeListener listener)
static boolean
replaceAnnounceURL(TOTorrent torrent, java.net.URL old_url, java.net.URL new_url)
static void
runTorrentDelete(DownloadManager[] dms, java.lang.Runnable target)
static void
setDecentralised(TOTorrent torrent)
static void
setDHTBackupEnabled(TOTorrent torrent, boolean enabled)
static void
setDHTBackupRequested(TOTorrent torrent, boolean requested)
static void
setDisplayName(TOTorrent torrent, java.lang.String str)
static void
setFlag(TOTorrent torrent, int flag, boolean value)
static void
setHashTreeState(TOTorrent torrent, java.util.Map state)
static void
setInitialMetadata(DownloadManager dm, java.util.Map<java.lang.String,java.lang.Object> metadata)
static void
setInitialMetadata(TOTorrent torrent, java.util.Map<java.lang.String,java.lang.Object> metadata)
static void
setInitialTags(TOTorrent torrent, java.util.List<java.lang.String> tags)
static void
setMemoryOnly(TOTorrent torrent, boolean mem_only)
static void
setNetworkCache(TOTorrent torrent, java.util.List<java.lang.String> networks)
static void
setObtainedFrom(TOTorrent torrent, java.lang.String str)
static void
setObtainedFrom(java.io.File file, java.lang.String str)
static void
setOriginalHash(TOTorrent torrent, byte[] hash)
static void
setPeerCache(TOTorrent torrent, java.util.Map pc)
static void
setPeerCacheValid(TOTorrent torrent)
static void
setPluginMapProperty(TOTorrent torrent, java.lang.String name, java.util.Map value)
static void
setPluginStringProperty(TOTorrent torrent, java.lang.String name, java.lang.String value)
static void
setPrivate(TOTorrent torrent, boolean _private)
static void
setResumeDataCompletelyValid(DownloadManagerState download_manager_state)
static void
setTagCache(TOTorrent torrent, java.util.List<java.lang.String> tags)
static void
setTLS(java.lang.Object obj)
static void
setTLSDescription(java.lang.String desc)
static void
setTLSTorrentHash(HashWrapper hash)
static void
setTorrentDeleted()
static boolean
shouldDeleteTorrentFileAfterAdd(java.io.File f, boolean persistent)
static void
startTorrentDelete(DownloadManager[] dms)
static void
temporarilyDisableDNSHandling()
Disables DNS Handling, but doesn't save it to the configstatic void
writeToFile(TOTorrent torrent)
static void
writeToFile(TOTorrent torrent, boolean force_backup)
static void
writeToFile(TOTorrent torrent, java.io.File file, boolean force_backup)
-
-
-
Field Detail
-
MAX_TORRENT_FILE_SIZE
public static final long MAX_TORRENT_FILE_SIZE
- See Also:
- Constant Field Values
-
NO_VALID_URL_URL
private static final java.lang.String NO_VALID_URL_URL
- See Also:
- Constant Field Values
-
TORRENT_FLAG_LOW_NOISE
public static final int TORRENT_FLAG_LOW_NOISE
- See Also:
- Constant Field Values
-
TORRENT_FLAG_METADATA_TORRENT
public static final int TORRENT_FLAG_METADATA_TORRENT
- See Also:
- Constant Field Values
-
TORRENT_FLAG_DISABLE_RCM
public static final int TORRENT_FLAG_DISABLE_RCM
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_DHT_BACKUP_ENABLE
private static final java.lang.String TORRENT_AZ_PROP_DHT_BACKUP_ENABLE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_DHT_BACKUP_REQUESTED
private static final java.lang.String TORRENT_AZ_PROP_DHT_BACKUP_REQUESTED
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_TORRENT_FLAGS
private static final java.lang.String TORRENT_AZ_PROP_TORRENT_FLAGS
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_PLUGINS
private static final java.lang.String TORRENT_AZ_PROP_PLUGINS
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_OBTAINED_FROM
public static final java.lang.String TORRENT_AZ_PROP_OBTAINED_FROM
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_DISPLAY_NAME
public static final java.lang.String TORRENT_AZ_PROP_DISPLAY_NAME
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_NETWORK_CACHE
private static final java.lang.String TORRENT_AZ_PROP_NETWORK_CACHE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_TAG_CACHE
private static final java.lang.String TORRENT_AZ_PROP_TAG_CACHE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_INITIAL_TAGS
private static final java.lang.String TORRENT_AZ_PROP_INITIAL_TAGS
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_INITIAL_METADATA
private static final java.lang.String TORRENT_AZ_PROP_INITIAL_METADATA
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_PEER_CACHE
private static final java.lang.String TORRENT_AZ_PROP_PEER_CACHE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_PEER_CACHE_VALID
private static final java.lang.String TORRENT_AZ_PROP_PEER_CACHE_VALID
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_INITIAL_LINKAGE
public static final java.lang.String TORRENT_AZ_PROP_INITIAL_LINKAGE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_INITIAL_LINKAGE2
public static final java.lang.String TORRENT_AZ_PROP_INITIAL_LINKAGE2
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_ORIGINAL_HASH
public static final java.lang.String TORRENT_AZ_PROP_ORIGINAL_HASH
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_HASHTREE_STATE
public static final java.lang.String TORRENT_AZ_PROP_HASHTREE_STATE
- See Also:
- Constant Field Values
-
TORRENT_AZ_PROP_HYBRID_HASH_V2
public static final java.lang.String TORRENT_AZ_PROP_HYBRID_HASH_V2
- See Also:
- Constant Field Values
-
MEM_ONLY_TORRENT_PATH
private static final java.lang.String MEM_ONLY_TORRENT_PATH
- See Also:
- Constant Field Values
-
PC_MARKER
private static final long PC_MARKER
-
created_torrents
private static final java.util.List<byte[]> created_torrents
-
created_torrents_set
private static final java.util.Set<HashWrapper> created_torrents_set
-
tls
private static final java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.Object>> tls
-
ignore_files_set
private static java.util.Set<java.lang.String> ignore_files_set
-
skip_extensions_set
private static java.util.Set<java.lang.String> skip_extensions_set
-
skip_file_set
private static java.util.Set<java.lang.Object> skip_file_set
-
bSaveTorrentBackup
private static boolean bSaveTorrentBackup
-
torrent_attribute_listeners
private static final CopyOnWriteList<TorrentUtils.torrentAttributeListener> torrent_attribute_listeners
-
torrent_url_changed_listeners
static final CopyOnWriteList<TorrentUtils.TorrentAnnounceURLChangeListener> torrent_url_changed_listeners
-
dispatcher
private static final AsyncDispatcher dispatcher
-
DNS_HANDLING_ENABLE
private static boolean DNS_HANDLING_ENABLE
-
TRACE_DNS
private static final boolean TRACE_DNS
- See Also:
- Constant Field Values
-
DNS_HISTORY_TIMEOUT
private static final int DNS_HISTORY_TIMEOUT
- See Also:
- Constant Field Values
-
dns_mapping
private static final java.util.Map<java.lang.String,TorrentUtils.DNSTXTEntry> dns_mapping
-
dns_mapping_seq_count
private static volatile int dns_mapping_seq_count
-
dns_threads
private static final ThreadPool dns_threads
-
dns_utils
static final DNSUtils.DNSUtilsIntf dns_utils
-
torrent_delete_level
static final java.util.concurrent.atomic.AtomicLong torrent_delete_level
-
torrent_delete_time
static long torrent_delete_time
-
announce_group_uid_next
private static java.util.concurrent.atomic.AtomicLong announce_group_uid_next
-
PIECE_HASH_TIMEOUT
private static final int PIECE_HASH_TIMEOUT
- See Also:
- Constant Field Values
-
torrent_delegates
static final java.util.Map torrent_delegates
-
torrentFluffKeyset
static final java.util.HashSet torrentFluffKeyset
-
fluffThombstone
static final java.util.Map fluffThombstone
-
txt_pattern
private static final java.util.regex.Pattern txt_pattern
-
ptd_listeners
private static CopyOnWriteList<TorrentUtils.PotentialTorrentDeletionListener> ptd_listeners
-
ptd_map
private static java.util.Map<DownloadManager,java.lang.Integer> ptd_map
-
ptdl_last
private static java.util.Map<TorrentUtils.PotentialTorrentDeletionListener,DownloadManager[]> ptdl_last
-
tracker_hosts
private static java.util.Set<java.lang.String> tracker_hosts
-
tracker_addresses
private static java.util.Set<java.lang.String> tracker_addresses
-
-
Method Detail
-
getAnnounceGroupUID
public static long getAnnounceGroupUID()
-
readFromFile
public static TOTorrent readFromFile(java.io.File file, boolean create_delegate) throws TOTorrentException
- Throws:
TOTorrentException
-
readDelegateFromFile
public static TorrentUtils.ExtendedTorrent readDelegateFromFile(java.io.File file, boolean force_initial_discard) throws TOTorrentException
If you set "create_delegate" to true then you must understand that this results is piece hashes being discarded and then re-read from the torrent file if needed Therefore, if you delete the original torrent file you're going to get errors if you access the pieces after this (and they've been discarded)- Parameters:
file
-create_delegate
-force_initial_discard
- - use to get rid of pieces immediately- Returns:
- Throws:
TOTorrentException
-
readFromFile
public static TOTorrent readFromFile(java.io.File file, boolean create_delegate, boolean force_initial_discard) throws TOTorrentException
- Throws:
TOTorrentException
-
readFromBEncodedInputStream
public static TOTorrent readFromBEncodedInputStream(java.io.InputStream is) throws TOTorrentException
- Throws:
TOTorrentException
-
cloneTorrent
public static TOTorrent cloneTorrent(TOTorrent torrent) throws TOTorrentException
- Throws:
TOTorrentException
-
setMemoryOnly
public static void setMemoryOnly(TOTorrent torrent, boolean mem_only)
-
writeToFile
public static void writeToFile(TOTorrent torrent) throws TOTorrentException
- Throws:
TOTorrentException
-
writeToFile
public static void writeToFile(TOTorrent torrent, boolean force_backup) throws TOTorrentException
- Throws:
TOTorrentException
-
writeToFile
public static void writeToFile(TOTorrent torrent, java.io.File file, boolean force_backup) throws TOTorrentException
- Throws:
TOTorrentException
-
getTorrentFileName
public static java.lang.String getTorrentFileName(TOTorrent torrent) throws TOTorrentException
- Throws:
TOTorrentException
-
getTorrentFileName
public static java.lang.String getTorrentFileName(TOTorrent torrent, boolean is_mandatory) throws TOTorrentException
- Throws:
TOTorrentException
-
clearTorrentFileName
public static void clearTorrentFileName(TOTorrent torrent)
-
copyToFile
public static void copyToFile(TOTorrent torrent, java.io.File file) throws TOTorrentException
- Throws:
TOTorrentException
-
delete
public static void delete(TOTorrent torrent) throws TOTorrentException
- Throws:
TOTorrentException
-
delete
public static void delete(java.io.File torrent_file, boolean force_no_recycle)
-
move
public static boolean move(java.io.File from_torrent, java.io.File to_torrent)
-
exceptionToText
public static java.lang.String exceptionToText(TOTorrentException e)
-
getUniqueTrackerHosts
public static java.util.Set<java.lang.String> getUniqueTrackerHosts(TOTorrent torrent)
-
getUniqueTrackerHosts
public static java.util.Set<java.lang.String> getUniqueTrackerHosts(TOTorrent torrent, boolean include_port)
-
announceGroupsToText
public static java.lang.String announceGroupsToText(TOTorrent torrent)
-
announceGroupsToText
public static java.lang.String announceGroupsToText(java.util.List<java.util.List<java.lang.String>> group)
-
announceTextToGroups
public static java.util.List<java.util.List<java.lang.String>> announceTextToGroups(java.lang.String text)
-
announceGroupsToList
public static java.util.List<java.util.List<java.lang.String>> announceGroupsToList(TOTorrent torrent)
-
expandTrackerLists
private static java.util.List<java.util.List<java.lang.String>> expandTrackerLists(java.util.List<java.util.List<java.lang.String>> groups)
-
listToAnnounceSets
public static TOTorrentAnnounceURLSet[] listToAnnounceSets(java.util.List<java.util.List<java.lang.String>> groups, TOTorrent torrent)
This method DOES NOT MODIFY THE TORRENT- Parameters:
groups
-torrent
-- Returns:
-
listToAnnounceGroups
public static void listToAnnounceGroups(java.util.List<java.util.List<java.lang.String>> groups, TOTorrent torrent)
-
announceGroupsInsertFirst
public static void announceGroupsInsertFirst(TOTorrent torrent, java.lang.String first_url)
-
announceGroupsInsertFirst
public static void announceGroupsInsertFirst(TOTorrent torrent, java.net.URL first_url)
-
announceGroupsInsertFirst
public static void announceGroupsInsertFirst(TOTorrent torrent, java.net.URL[] first_urls)
-
announceGroupsInsertLast
public static void announceGroupsInsertLast(TOTorrent torrent, java.net.URL[] first_urls)
-
announceGroupsSetFirst
public static void announceGroupsSetFirst(TOTorrent torrent, java.lang.String first_url)
-
announceGroupsContainsURL
public static boolean announceGroupsContainsURL(TOTorrent torrent, java.lang.String url)
-
canMergeAnnounceURLs
public static boolean canMergeAnnounceURLs(TOTorrent new_torrent, TOTorrent dest_torrent)
-
mergeAnnounceURLs
public static boolean mergeAnnounceURLs(TOTorrent new_torrent, TOTorrent dest_torrent)
-
mergeAnnounceURLs
public static java.util.List<java.util.List<java.lang.String>> mergeAnnounceURLs(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.util.List<java.lang.String>> merge_urls)
-
removeAnnounceURLs
public static java.util.List<java.util.List<java.lang.String>> removeAnnounceURLs(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.util.List<java.lang.String>> remove_urls, boolean use_prefix_match)
-
removeAnnounceURLs2
public static java.util.List<java.util.List<java.lang.String>> removeAnnounceURLs2(java.util.List<java.util.List<java.lang.String>> base_urls, java.util.List<java.lang.String> remove_urls, boolean use_prefix_match)
-
getClone
public static java.util.List<java.util.List<java.lang.String>> getClone(java.util.List<java.util.List<java.lang.String>> lls)
-
areIdentical
public static boolean areIdentical(java.util.List<java.util.List<java.lang.String>> ll1, java.util.List<java.util.List<java.lang.String>> ll2)
-
replaceAnnounceURL
public static boolean replaceAnnounceURL(TOTorrent torrent, java.net.URL old_url, java.net.URL new_url)
-
setResumeDataCompletelyValid
public static void setResumeDataCompletelyValid(DownloadManagerState download_manager_state)
-
getLocalisedName
public static java.lang.String getLocalisedName(TOTorrent torrent)
-
setTLSTorrentHash
public static void setTLSTorrentHash(HashWrapper hash)
-
getTLSTorrentHash
public static HashWrapper getTLSTorrentHash()
-
getTLSTorrent
public static TOTorrent getTLSTorrent()
-
setTLSDescription
public static void setTLSDescription(java.lang.String desc)
-
getTLSDescription
public static java.lang.String getTLSDescription()
-
getTLS
public static java.lang.Object getTLS()
get tls for cloning onto another thread- Returns:
-
setTLS
public static void setTLS(java.lang.Object obj)
-
getDecentralisedEmptyURL
public static java.net.URL getDecentralisedEmptyURL()
-
getDecentralisedURL
public static java.net.URL getDecentralisedURL(byte[] hash)
-
getDecentralisedURL
public static java.net.URL getDecentralisedURL(TOTorrent torrent)
-
setDecentralised
public static void setDecentralised(TOTorrent torrent)
-
isDecentralised
public static boolean isDecentralised(TOTorrent torrent)
-
isDecentralised
public static boolean isDecentralised(java.net.URL url)
-
isDecentralised
public static boolean isDecentralised(java.lang.String host)
-
getAzureusProperties
private static java.util.Map getAzureusProperties(TOTorrent torrent)
-
getAzureusPrivateProperties
private static java.util.Map getAzureusPrivateProperties(TOTorrent torrent)
-
getContentMapString
private static java.lang.String getContentMapString(TOTorrent torrent, java.lang.String key)
-
isFeaturedContent
public static boolean isFeaturedContent(TOTorrent torrent)
-
setObtainedFrom
public static void setObtainedFrom(java.io.File file, java.lang.String str)
-
setObtainedFrom
public static void setObtainedFrom(TOTorrent torrent, java.lang.String str)
-
getObtainedFrom
public static java.lang.String getObtainedFrom(TOTorrent torrent)
-
setDisplayName
public static void setDisplayName(TOTorrent torrent, java.lang.String str)
-
getDisplayName
public static java.lang.String getDisplayName(TOTorrent torrent)
-
setNetworkCache
public static void setNetworkCache(TOTorrent torrent, java.util.List<java.lang.String> networks)
-
getNetworkCache
public static java.util.List<java.lang.String> getNetworkCache(TOTorrent torrent)
-
setTagCache
public static void setTagCache(TOTorrent torrent, java.util.List<java.lang.String> tags)
-
getTagCache
public static java.util.List<java.lang.String> getTagCache(TOTorrent torrent)
-
setInitialTags
public static void setInitialTags(TOTorrent torrent, java.util.List<java.lang.String> tags)
-
getInitialTags
public static java.util.List<java.lang.String> getInitialTags(TOTorrent torrent)
-
setInitialMetadata
public static void setInitialMetadata(TOTorrent torrent, java.util.Map<java.lang.String,java.lang.Object> metadata)
-
getInitialMetadata
public static java.util.Map<java.lang.String,java.lang.Object> getInitialMetadata(TOTorrent torrent)
-
getInitialMetadata
public static java.util.Map<java.lang.String,java.lang.Object> getInitialMetadata(DownloadManager dm)
-
setInitialMetadata
public static void setInitialMetadata(DownloadManager dm, java.util.Map<java.lang.String,java.lang.Object> metadata)
-
setOriginalHash
public static void setOriginalHash(TOTorrent torrent, byte[] hash)
-
getOriginalHash
public static byte[] getOriginalHash(TOTorrent torrent)
-
setHashTreeState
public static void setHashTreeState(TOTorrent torrent, java.util.Map state)
-
getHashTreeState
public static java.util.Map getHashTreeState(TOTorrent torrent)
-
getHashForDisplay
public static byte[] getHashForDisplay(TOTorrent torrent)
-
setPeerCache
public static void setPeerCache(TOTorrent torrent, java.util.Map pc)
-
setPeerCacheValid
public static void setPeerCacheValid(TOTorrent torrent)
-
getPeerCache
public static java.util.Map getPeerCache(TOTorrent torrent)
-
setFlag
public static void setFlag(TOTorrent torrent, int flag, boolean value)
-
getFlag
public static boolean getFlag(TOTorrent torrent, int flag)
-
getInitialLinkage
public static java.util.Map<java.lang.Integer,java.io.File> getInitialLinkage(TOTorrent torrent)
-
setPluginStringProperty
public static void setPluginStringProperty(TOTorrent torrent, java.lang.String name, java.lang.String value)
-
getPluginStringProperty
public static java.lang.String getPluginStringProperty(TOTorrent torrent, java.lang.String name)
-
setPluginMapProperty
public static void setPluginMapProperty(TOTorrent torrent, java.lang.String name, java.util.Map value)
-
getPluginMapProperty
public static java.util.Map getPluginMapProperty(TOTorrent torrent, java.lang.String name)
-
setDHTBackupEnabled
public static void setDHTBackupEnabled(TOTorrent torrent, boolean enabled)
-
getDHTBackupEnabled
public static boolean getDHTBackupEnabled(TOTorrent torrent)
-
isDHTBackupRequested
public static boolean isDHTBackupRequested(TOTorrent torrent)
-
setDHTBackupRequested
public static void setDHTBackupRequested(TOTorrent torrent, boolean requested)
-
isReallyPrivate
public static boolean isReallyPrivate(TOTorrent torrent)
-
getPrivate
public static boolean getPrivate(TOTorrent torrent)
-
setPrivate
public static void setPrivate(TOTorrent torrent, boolean _private)
-
getSkipExtensionsSet
public static java.util.Set<java.lang.String> getSkipExtensionsSet()
-
getSkipExtensionsSetSupport
private static java.util.Set<java.lang.String> getSkipExtensionsSetSupport(boolean force)
-
getSkipFileSet
public static java.util.Set<java.lang.Object> getSkipFileSet()
-
getSkipFileSetSupport
private static java.util.Set<java.lang.Object> getSkipFileSetSupport(boolean force)
-
getSkipFiles
public static boolean[] getSkipFiles(TOTorrent torrent)
- Parameters:
torrent
-- Returns:
- null if no files skipped otherwise entry for each file in torrent
-
getIgnoreSet
public static java.util.Set<java.lang.String> getIgnoreSet()
-
getIgnoreSetSupport
private static java.util.Set<java.lang.String> getIgnoreSetSupport(boolean force)
-
registerMapFluff
public static void registerMapFluff(java.lang.String[] fluff)
Register keys that are used for heavyweight maps that should be discarded when the torrent is not in use Make sure these keys are only ever used for Map objects!
-
copyTorrentFileToSaveDir
public static java.io.File copyTorrentFileToSaveDir(java.io.File f, boolean persistent) throws java.io.IOException
Copy a file to the Torrent Save Directory, taking into account all the user config options related to that.Also makes the directory if it doesn't exist.
- Parameters:
f
- File to copypersistent
- Whether the torrent is persistent- Returns:
- File after it's been copied (may be the same as f)
- Throws:
java.io.IOException
-
shouldDeleteTorrentFileAfterAdd
public static boolean shouldDeleteTorrentFileAfterAdd(java.io.File f, boolean persistent)
-
getDownloadManager
public static DownloadManager getDownloadManager(HashWrapper hash)
Get the DownloadManager related to a torrent's hashBytes- Parameters:
hashBytes
-- Returns:
-
recursiveEmptyDirDelete
public static void recursiveEmptyDirDelete(java.io.File f)
Deletes the given dir and all dirs underneath if empty. Don't delete default save path or completed files directory, however, allow deletion of their empty subdirectories Files defined to be ignored for the sake of torrent creation are automatically deleted For example, by default this includes thumbs.db
-
recursiveEmptyDirDelete
public static void recursiveEmptyDirDelete(java.io.File f, boolean log_warnings)
Same as #recursiveEmptyDirDelete(File), except allows disabling of logging of any warnings- Parameters:
f
- Dir to deletelog_warnings
- Whether to log warning
-
nicePrintTorrentHash
public static java.lang.String nicePrintTorrentHash(TOTorrent torrent)
A nice string of a Torrent's hash- Parameters:
torrent
- Torrent to fromat hash of- Returns:
- Hash string in a nice format
-
nicePrintTorrentHash
public static java.lang.String nicePrintTorrentHash(TOTorrent torrent, boolean tight)
A nice string of a Torrent's hash- Parameters:
torrent
- Torrent to fromat hash oftight
- No spaces between groups of numbers- Returns:
- Hash string in a nice format
-
isTorrentFile
public static boolean isTorrentFile(java.lang.String filename) throws java.io.FileNotFoundException, java.io.IOException
Runs a file through a series of test to verify if it is a torrent.- Parameters:
filename
- File to test- Returns:
- true - file is a valid torrent file
- Throws:
java.io.FileNotFoundException
java.io.IOException
-
addCreatedTorrent
public static void addCreatedTorrent(TOTorrent torrent)
-
removeCreatedTorrent
public static void removeCreatedTorrent(TOTorrent torrent)
-
isCreatedTorrent
public static boolean isCreatedTorrent(TOTorrent torrent)
-
download
public static TOTorrent download(java.net.URL url) throws java.io.IOException
- Throws:
java.io.IOException
-
download
public static TOTorrent download(java.net.URL url, long timeout) throws java.io.IOException
- Throws:
java.io.IOException
-
fireAttributeListener
private static void fireAttributeListener(TOTorrent torrent, java.lang.String attribute, java.lang.Object value)
-
addTorrentAttributeListener
public static void addTorrentAttributeListener(TorrentUtils.torrentAttributeListener listener)
-
removeTorrentAttributeListener
public static void removeTorrentAttributeListener(TorrentUtils.torrentAttributeListener listener)
-
addTorrentURLChangeListener
public static void addTorrentURLChangeListener(TorrentUtils.TorrentAnnounceURLChangeListener listener)
-
removeTorrentURLChangeListener
public static void removeTorrentURLChangeListener(TorrentUtils.TorrentAnnounceURLChangeListener listener)
-
getDNSTXTEntry
public static TorrentUtils.DNSTXTEntry getDNSTXTEntry(java.net.URL url)
-
checkDNSTimeouts
private static void checkDNSTimeouts()
-
getDNSTXTEntry
private static TorrentUtils.DNSTXTEntry getDNSTXTEntry(java.lang.String host, boolean force_update, java.util.List<java.lang.String> already_got_records)
-
applyDNSMods
private static java.net.URL applyDNSMods(java.net.URL url)
-
applyAllDNSMods
private static java.util.List<java.net.URL> applyAllDNSMods(java.net.URL url)
-
applyDNSMods
private static TOTorrentAnnounceURLGroup applyDNSMods(java.net.URL announce_url, TOTorrentAnnounceURLGroup group)
-
startTorrentDelete
public static void startTorrentDelete(DownloadManager[] dms)
-
endTorrentDelete
public static void endTorrentDelete(DownloadManager[] dms)
-
runTorrentDelete
public static void runTorrentDelete(DownloadManager[] dms, java.lang.Runnable target)
-
addPotentialTorrentDeletionListener
public static void addPotentialTorrentDeletionListener(TorrentUtils.PotentialTorrentDeletionListener l)
-
removePotentialTorrentDeletionListener
public static void removePotentialTorrentDeletionListener(TorrentUtils.PotentialTorrentDeletionListener l)
-
isTorrentDeleting
public static boolean isTorrentDeleting()
-
setTorrentDeleted
public static void setTorrentDeleted()
-
getMillisecondsSinceLastTorrentDelete
public static long getMillisecondsSinceLastTorrentDelete()
-
propagateExportability
public static boolean propagateExportability(TOTorrent source, java.io.File dest)
-
temporarilyDisableDNSHandling
public static void temporarilyDisableDNSHandling()
Disables DNS Handling, but doesn't save it to the config
-
isTrackerAddress
public static boolean isTrackerAddress(TOTorrent torrent, java.net.InetSocketAddress isa)
-
main
public static void main(java.lang.String[] args)
-
-