mirror of
https://github.com/correl/Transmission-XBMC.git
synced 2024-11-25 03:00:15 +00:00
295 lines
28 KiB
Python
Executable file
295 lines
28 KiB
Python
Executable file
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2008-2013 Erik Svensson <erik.public@gmail.com>
|
|
# Licensed under the MIT license.
|
|
|
|
import logging
|
|
from six import iteritems
|
|
|
|
LOGGER = logging.getLogger('transmissionrpc')
|
|
LOGGER.setLevel(logging.ERROR)
|
|
|
|
def mirror_dict(source):
|
|
"""
|
|
Creates a dictionary with all values as keys and all keys as values.
|
|
"""
|
|
source.update(dict((value, key) for key, value in iteritems(source)))
|
|
return source
|
|
|
|
DEFAULT_PORT = 9091
|
|
|
|
DEFAULT_TIMEOUT = 30.0
|
|
|
|
TR_PRI_LOW = -1
|
|
TR_PRI_NORMAL = 0
|
|
TR_PRI_HIGH = 1
|
|
|
|
PRIORITY = mirror_dict({
|
|
'low' : TR_PRI_LOW,
|
|
'normal' : TR_PRI_NORMAL,
|
|
'high' : TR_PRI_HIGH
|
|
})
|
|
|
|
TR_RATIOLIMIT_GLOBAL = 0 # follow the global settings
|
|
TR_RATIOLIMIT_SINGLE = 1 # override the global settings, seeding until a certain ratio
|
|
TR_RATIOLIMIT_UNLIMITED = 2 # override the global settings, seeding regardless of ratio
|
|
|
|
RATIO_LIMIT = mirror_dict({
|
|
'global' : TR_RATIOLIMIT_GLOBAL,
|
|
'single' : TR_RATIOLIMIT_SINGLE,
|
|
'unlimited' : TR_RATIOLIMIT_UNLIMITED
|
|
})
|
|
|
|
TR_IDLELIMIT_GLOBAL = 0 # follow the global settings
|
|
TR_IDLELIMIT_SINGLE = 1 # override the global settings, seeding until a certain idle time
|
|
TR_IDLELIMIT_UNLIMITED = 2 # override the global settings, seeding regardless of activity
|
|
|
|
IDLE_LIMIT = mirror_dict({
|
|
'global' : TR_RATIOLIMIT_GLOBAL,
|
|
'single' : TR_RATIOLIMIT_SINGLE,
|
|
'unlimited' : TR_RATIOLIMIT_UNLIMITED
|
|
})
|
|
|
|
# A note on argument maps
|
|
# These maps are used to verify *-set methods. The information is structured in
|
|
# a tree.
|
|
# set +- <argument1> - [<type>, <added version>, <removed version>, <previous argument name>, <next argument name>, <description>]
|
|
# | +- <argument2> - [<type>, <added version>, <removed version>, <previous argument name>, <next argument name>, <description>]
|
|
# |
|
|
# get +- <argument1> - [<type>, <added version>, <removed version>, <previous argument name>, <next argument name>, <description>]
|
|
# +- <argument2> - [<type>, <added version>, <removed version>, <previous argument name>, <next argument name>, <description>]
|
|
|
|
# Arguments for torrent methods
|
|
TORRENT_ARGS = {
|
|
'get' : {
|
|
'activityDate': ('number', 1, None, None, None, 'Last time of upload or download activity.'),
|
|
'addedDate': ('number', 1, None, None, None, 'The date when this torrent was first added.'),
|
|
'announceResponse': ('string', 1, 7, None, None, 'The announce message from the tracker.'),
|
|
'announceURL': ('string', 1, 7, None, None, 'Current announce URL.'),
|
|
'bandwidthPriority': ('number', 5, None, None, None, 'Bandwidth priority. Low (-1), Normal (0) or High (1).'),
|
|
'comment': ('string', 1, None, None, None, 'Torrent comment.'),
|
|
'corruptEver': ('number', 1, None, None, None, 'Number of bytes of corrupt data downloaded.'),
|
|
'creator': ('string', 1, None, None, None, 'Torrent creator.'),
|
|
'dateCreated': ('number', 1, None, None, None, 'Torrent creation date.'),
|
|
'desiredAvailable': ('number', 1, None, None, None, 'Number of bytes avalable and left to be downloaded.'),
|
|
'doneDate': ('number', 1, None, None, None, 'The date when the torrent finished downloading.'),
|
|
'downloadDir': ('string', 4, None, None, None, 'The directory path where the torrent is downloaded to.'),
|
|
'downloadedEver': ('number', 1, None, None, None, 'Number of bytes of good data downloaded.'),
|
|
'downloaders': ('number', 4, 7, None, None, 'Number of downloaders.'),
|
|
'downloadLimit': ('number', 1, None, None, None, 'Download limit in Kbps.'),
|
|
'downloadLimited': ('boolean', 5, None, None, None, 'Download limit is enabled'),
|
|
'downloadLimitMode': ('number', 1, 5, None, None, 'Download limit mode. 0 means global, 1 means signle, 2 unlimited.'),
|
|
'error': ('number', 1, None, None, None, 'Kind of error. 0 means OK, 1 means tracker warning, 2 means tracker error, 3 means local error.'),
|
|
'errorString': ('number', 1, None, None, None, 'Error message.'),
|
|
'eta': ('number', 1, None, None, None, 'Estimated number of seconds left when downloading or seeding. -1 means not available and -2 means unknown.'),
|
|
'etaIdle': ('number', 15, None, None, None, 'Estimated number of seconds left until the idle time limit is reached. -1 means not available and -2 means unknown.'),
|
|
'files': ('array', 1, None, None, None, 'Array of file object containing key, bytesCompleted, length and name.'),
|
|
'fileStats': ('array', 5, None, None, None, 'Aray of file statistics containing bytesCompleted, wanted and priority.'),
|
|
'hashString': ('string', 1, None, None, None, 'Hashstring unique for the torrent even between sessions.'),
|
|
'haveUnchecked': ('number', 1, None, None, None, 'Number of bytes of partial pieces.'),
|
|
'haveValid': ('number', 1, None, None, None, 'Number of bytes of checksum verified data.'),
|
|
'honorsSessionLimits': ('boolean', 5, None, None, None, 'True if session upload limits are honored'),
|
|
'id': ('number', 1, None, None, None, 'Session unique torrent id.'),
|
|
'isFinished': ('boolean', 9, None, None, None, 'True if the torrent is finished. Downloaded and seeded.'),
|
|
'isPrivate': ('boolean', 1, None, None, None, 'True if the torrent is private.'),
|
|
'isStalled': ('boolean', 14, None, None, None, 'True if the torrent has stalled (been idle for a long time).'),
|
|
'lastAnnounceTime': ('number', 1, 7, None, None, 'The time of the last announcement.'),
|
|
'lastScrapeTime': ('number', 1, 7, None, None, 'The time af the last successful scrape.'),
|
|
'leechers': ('number', 1, 7, None, None, 'Number of leechers.'),
|
|
'leftUntilDone': ('number', 1, None, None, None, 'Number of bytes left until the download is done.'),
|
|
'magnetLink': ('string', 7, None, None, None, 'The magnet link for this torrent.'),
|
|
'manualAnnounceTime': ('number', 1, None, None, None, 'The time until you manually ask for more peers.'),
|
|
'maxConnectedPeers': ('number', 1, None, None, None, 'Maximum of connected peers.'),
|
|
'metadataPercentComplete': ('number', 7, None, None, None, 'Download progress of metadata. 0.0 to 1.0.'),
|
|
'name': ('string', 1, None, None, None, 'Torrent name.'),
|
|
'nextAnnounceTime': ('number', 1, 7, None, None, 'Next announce time.'),
|
|
'nextScrapeTime': ('number', 1, 7, None, None, 'Next scrape time.'),
|
|
'peer-limit': ('number', 5, None, None, None, 'Maximum number of peers.'),
|
|
'peers': ('array', 2, None, None, None, 'Array of peer objects.'),
|
|
'peersConnected': ('number', 1, None, None, None, 'Number of peers we are connected to.'),
|
|
'peersFrom': ('object', 1, None, None, None, 'Object containing download peers counts for different peer types.'),
|
|
'peersGettingFromUs': ('number', 1, None, None, None, 'Number of peers we are sending data to.'),
|
|
'peersKnown': ('number', 1, 13, None, None, 'Number of peers that the tracker knows.'),
|
|
'peersSendingToUs': ('number', 1, None, None, None, 'Number of peers sending to us'),
|
|
'percentDone': ('double', 5, None, None, None, 'Download progress of selected files. 0.0 to 1.0.'),
|
|
'pieces': ('string', 5, None, None, None, 'String with base64 encoded bitfield indicating finished pieces.'),
|
|
'pieceCount': ('number', 1, None, None, None, 'Number of pieces.'),
|
|
'pieceSize': ('number', 1, None, None, None, 'Number of bytes in a piece.'),
|
|
'priorities': ('array', 1, None, None, None, 'Array of file priorities.'),
|
|
'queuePosition': ('number', 14, None, None, None, 'The queue position.'),
|
|
'rateDownload': ('number', 1, None, None, None, 'Download rate in bps.'),
|
|
'rateUpload': ('number', 1, None, None, None, 'Upload rate in bps.'),
|
|
'recheckProgress': ('double', 1, None, None, None, 'Progress of recheck. 0.0 to 1.0.'),
|
|
'secondsDownloading': ('number', 15, None, None, None, ''),
|
|
'secondsSeeding': ('number', 15, None, None, None, ''),
|
|
'scrapeResponse': ('string', 1, 7, None, None, 'Scrape response message.'),
|
|
'scrapeURL': ('string', 1, 7, None, None, 'Current scrape URL'),
|
|
'seeders': ('number', 1, 7, None, None, 'Number of seeders reported by the tracker.'),
|
|
'seedIdleLimit': ('number', 10, None, None, None, 'Idle limit in minutes.'),
|
|
'seedIdleMode': ('number', 10, None, None, None, 'Use global (0), torrent (1), or unlimited (2) limit.'),
|
|
'seedRatioLimit': ('double', 5, None, None, None, 'Seed ratio limit.'),
|
|
'seedRatioMode': ('number', 5, None, None, None, 'Use global (0), torrent (1), or unlimited (2) limit.'),
|
|
'sizeWhenDone': ('number', 1, None, None, None, 'Size of the torrent download in bytes.'),
|
|
'startDate': ('number', 1, None, None, None, 'The date when the torrent was last started.'),
|
|
'status': ('number', 1, None, None, None, 'Current status, see source'),
|
|
'swarmSpeed': ('number', 1, 7, None, None, 'Estimated speed in Kbps in the swarm.'),
|
|
'timesCompleted': ('number', 1, 7, None, None, 'Number of successful downloads reported by the tracker.'),
|
|
'trackers': ('array', 1, None, None, None, 'Array of tracker objects.'),
|
|
'trackerStats': ('object', 7, None, None, None, 'Array of object containing tracker statistics.'),
|
|
'totalSize': ('number', 1, None, None, None, 'Total size of the torrent in bytes'),
|
|
'torrentFile': ('string', 5, None, None, None, 'Path to .torrent file.'),
|
|
'uploadedEver': ('number', 1, None, None, None, 'Number of bytes uploaded, ever.'),
|
|
'uploadLimit': ('number', 1, None, None, None, 'Upload limit in Kbps'),
|
|
'uploadLimitMode': ('number', 1, 5, None, None, 'Upload limit mode. 0 means global, 1 means signle, 2 unlimited.'),
|
|
'uploadLimited': ('boolean', 5, None, None, None, 'Upload limit enabled.'),
|
|
'uploadRatio': ('double', 1, None, None, None, 'Seed ratio.'),
|
|
'wanted': ('array', 1, None, None, None, 'Array of booleans indicated wanted files.'),
|
|
'webseeds': ('array', 1, None, None, None, 'Array of webseeds objects'),
|
|
'webseedsSendingToUs': ('number', 1, None, None, None, 'Number of webseeds seeding to us.'),
|
|
},
|
|
'set': {
|
|
'bandwidthPriority': ('number', 5, None, None, None, 'Priority for this transfer.'),
|
|
'downloadLimit': ('number', 5, None, 'speed-limit-down', None, 'Set the speed limit for download in Kib/s.'),
|
|
'downloadLimited': ('boolean', 5, None, 'speed-limit-down-enabled', None, 'Enable download speed limiter.'),
|
|
'files-wanted': ('array', 1, None, None, None, "A list of file id's that should be downloaded."),
|
|
'files-unwanted': ('array', 1, None, None, None, "A list of file id's that shouldn't be downloaded."),
|
|
'honorsSessionLimits': ('boolean', 5, None, None, None, "Enables or disables the transfer to honour the upload limit set in the session."),
|
|
'location': ('array', 1, None, None, None, 'Local download location.'),
|
|
'peer-limit': ('number', 1, None, None, None, 'The peer limit for the torrents.'),
|
|
'priority-high': ('array', 1, None, None, None, "A list of file id's that should have high priority."),
|
|
'priority-low': ('array', 1, None, None, None, "A list of file id's that should have normal priority."),
|
|
'priority-normal': ('array', 1, None, None, None, "A list of file id's that should have low priority."),
|
|
'queuePosition': ('number', 14, None, None, None, 'Position of this transfer in its queue.'),
|
|
'seedIdleLimit': ('number', 10, None, None, None, 'Seed inactivity limit in minutes.'),
|
|
'seedIdleMode': ('number', 10, None, None, None, 'Seed inactivity mode. 0 = Use session limit, 1 = Use transfer limit, 2 = Disable limit.'),
|
|
'seedRatioLimit': ('double', 5, None, None, None, 'Seeding ratio.'),
|
|
'seedRatioMode': ('number', 5, None, None, None, 'Which ratio to use. 0 = Use session limit, 1 = Use transfer limit, 2 = Disable limit.'),
|
|
'speed-limit-down': ('number', 1, 5, None, 'downloadLimit', 'Set the speed limit for download in Kib/s.'),
|
|
'speed-limit-down-enabled': ('boolean', 1, 5, None, 'downloadLimited', 'Enable download speed limiter.'),
|
|
'speed-limit-up': ('number', 1, 5, None, 'uploadLimit', 'Set the speed limit for upload in Kib/s.'),
|
|
'speed-limit-up-enabled': ('boolean', 1, 5, None, 'uploadLimited', 'Enable upload speed limiter.'),
|
|
'trackerAdd': ('array', 10, None, None, None, 'Array of string with announce URLs to add.'),
|
|
'trackerRemove': ('array', 10, None, None, None, 'Array of ids of trackers to remove.'),
|
|
'trackerReplace': ('array', 10, None, None, None, 'Array of (id, url) tuples where the announce URL should be replaced.'),
|
|
'uploadLimit': ('number', 5, None, 'speed-limit-up', None, 'Set the speed limit for upload in Kib/s.'),
|
|
'uploadLimited': ('boolean', 5, None, 'speed-limit-up-enabled', None, 'Enable upload speed limiter.'),
|
|
},
|
|
'add': {
|
|
'bandwidthPriority': ('number', 8, None, None, None, 'Priority for this transfer.'),
|
|
'download-dir': ('string', 1, None, None, None, 'The directory where the downloaded contents will be saved in.'),
|
|
'cookies': ('string', 13, None, None, None, 'One or more HTTP cookie(s).'),
|
|
'filename': ('string', 1, None, None, None, "A file path or URL to a torrent file or a magnet link."),
|
|
'files-wanted': ('array', 1, None, None, None, "A list of file id's that should be downloaded."),
|
|
'files-unwanted': ('array', 1, None, None, None, "A list of file id's that shouldn't be downloaded."),
|
|
'metainfo': ('string', 1, None, None, None, 'The content of a torrent file, base64 encoded.'),
|
|
'paused': ('boolean', 1, None, None, None, 'If True, does not start the transfer when added.'),
|
|
'peer-limit': ('number', 1, None, None, None, 'Maximum number of peers allowed.'),
|
|
'priority-high': ('array', 1, None, None, None, "A list of file id's that should have high priority."),
|
|
'priority-low': ('array', 1, None, None, None, "A list of file id's that should have low priority."),
|
|
'priority-normal': ('array', 1, None, None, None, "A list of file id's that should have normal priority."),
|
|
}
|
|
}
|
|
|
|
# Arguments for session methods
|
|
SESSION_ARGS = {
|
|
'get': {
|
|
"alt-speed-down": ('number', 5, None, None, None, 'Alternate session download speed limit (in Kib/s).'),
|
|
"alt-speed-enabled": ('boolean', 5, None, None, None, 'True if alternate global download speed limiter is ebabled.'),
|
|
"alt-speed-time-begin": ('number', 5, None, None, None, 'Time when alternate speeds should be enabled. Minutes after midnight.'),
|
|
"alt-speed-time-enabled": ('boolean', 5, None, None, None, 'True if alternate speeds scheduling is enabled.'),
|
|
"alt-speed-time-end": ('number', 5, None, None, None, 'Time when alternate speeds should be disabled. Minutes after midnight.'),
|
|
"alt-speed-time-day": ('number', 5, None, None, None, 'Days alternate speeds scheduling is enabled.'),
|
|
"alt-speed-up": ('number', 5, None, None, None, 'Alternate session upload speed limit (in Kib/s)'),
|
|
"blocklist-enabled": ('boolean', 5, None, None, None, 'True when blocklist is enabled.'),
|
|
"blocklist-size": ('number', 5, None, None, None, 'Number of rules in the blocklist'),
|
|
"blocklist-url": ('string', 11, None, None, None, 'Location of the block list. Updated with blocklist-update.'),
|
|
"cache-size-mb": ('number', 10, None, None, None, 'The maximum size of the disk cache in MB'),
|
|
"config-dir": ('string', 8, None, None, None, 'location of transmissions configuration directory'),
|
|
"dht-enabled": ('boolean', 6, None, None, None, 'True if DHT enabled.'),
|
|
"download-dir": ('string', 1, None, None, None, 'The download directory.'),
|
|
"download-dir-free-space": ('number', 12, None, None, None, 'Free space in the download directory, in bytes'),
|
|
"download-queue-size": ('number', 14, None, None, None, 'Number of slots in the download queue.'),
|
|
"download-queue-enabled": ('boolean', 14, None, None, None, 'True if the download queue is enabled.'),
|
|
"encryption": ('string', 1, None, None, None, 'Encryption mode, one of ``required``, ``preferred`` or ``tolerated``.'),
|
|
"idle-seeding-limit": ('number', 10, None, None, None, 'Seed inactivity limit in minutes.'),
|
|
"idle-seeding-limit-enabled": ('boolean', 10, None, None, None, 'True if the seed activity limit is enabled.'),
|
|
"incomplete-dir": ('string', 7, None, None, None, 'The path to the directory for incomplete torrent transfer data.'),
|
|
"incomplete-dir-enabled": ('boolean', 7, None, None, None, 'True if the incomplete dir is enabled.'),
|
|
"lpd-enabled": ('boolean', 9, None, None, None, 'True if local peer discovery is enabled.'),
|
|
"peer-limit": ('number', 1, 5, None, 'peer-limit-global', 'Maximum number of peers.'),
|
|
"peer-limit-global": ('number', 5, None, 'peer-limit', None, 'Maximum number of peers.'),
|
|
"peer-limit-per-torrent": ('number', 5, None, None, None, 'Maximum number of peers per transfer.'),
|
|
"pex-allowed": ('boolean', 1, 5, None, 'pex-enabled', 'True if PEX is allowed.'),
|
|
"pex-enabled": ('boolean', 5, None, 'pex-allowed', None, 'True if PEX is enabled.'),
|
|
"port": ('number', 1, 5, None, 'peer-port', 'Peer port.'),
|
|
"peer-port": ('number', 5, None, 'port', None, 'Peer port.'),
|
|
"peer-port-random-on-start": ('boolean', 5, None, None, None, 'Enables randomized peer port on start of Transmission.'),
|
|
"port-forwarding-enabled": ('boolean', 1, None, None, None, 'True if port forwarding is enabled.'),
|
|
"queue-stalled-minutes": ('number', 14, None, None, None, 'Number of minutes of idle that marks a transfer as stalled.'),
|
|
"queue-stalled-enabled": ('boolean', 14, None, None, None, 'True if stalled tracking of transfers is enabled.'),
|
|
"rename-partial-files": ('boolean', 8, None, None, None, 'True if ".part" is appended to incomplete files'),
|
|
"rpc-version": ('number', 4, None, None, None, 'Transmission RPC API Version.'),
|
|
"rpc-version-minimum": ('number', 4, None, None, None, 'Minimum accepted RPC API Version.'),
|
|
"script-torrent-done-enabled": ('boolean', 9, None, None, None, 'True if the done script is enabled.'),
|
|
"script-torrent-done-filename": ('string', 9, None, None, None, 'Filename of the script to run when the transfer is done.'),
|
|
"seedRatioLimit": ('double', 5, None, None, None, 'Seed ratio limit. 1.0 means 1:1 download and upload ratio.'),
|
|
"seedRatioLimited": ('boolean', 5, None, None, None, 'True if seed ration limit is enabled.'),
|
|
"seed-queue-size": ('number', 14, None, None, None, 'Number of slots in the upload queue.'),
|
|
"seed-queue-enabled": ('boolean', 14, None, None, None, 'True if upload queue is enabled.'),
|
|
"speed-limit-down": ('number', 1, None, None, None, 'Download speed limit (in Kib/s).'),
|
|
"speed-limit-down-enabled": ('boolean', 1, None, None, None, 'True if the download speed is limited.'),
|
|
"speed-limit-up": ('number', 1, None, None, None, 'Upload speed limit (in Kib/s).'),
|
|
"speed-limit-up-enabled": ('boolean', 1, None, None, None, 'True if the upload speed is limited.'),
|
|
"start-added-torrents": ('boolean', 9, None, None, None, 'When true uploaded torrents will start right away.'),
|
|
"trash-original-torrent-files": ('boolean', 9, None, None, None, 'When true added .torrent files will be deleted.'),
|
|
'units': ('object', 10, None, None, None, 'An object containing units for size and speed.'),
|
|
'utp-enabled': ('boolean', 13, None, None, None, 'True if Micro Transport Protocol (UTP) is enabled.'),
|
|
"version": ('string', 3, None, None, None, 'Transmission version.'),
|
|
},
|
|
'set': {
|
|
"alt-speed-down": ('number', 5, None, None, None, 'Alternate session download speed limit (in Kib/s).'),
|
|
"alt-speed-enabled": ('boolean', 5, None, None, None, 'Enables alternate global download speed limiter.'),
|
|
"alt-speed-time-begin": ('number', 5, None, None, None, 'Time when alternate speeds should be enabled. Minutes after midnight.'),
|
|
"alt-speed-time-enabled": ('boolean', 5, None, None, None, 'Enables alternate speeds scheduling.'),
|
|
"alt-speed-time-end": ('number', 5, None, None, None, 'Time when alternate speeds should be disabled. Minutes after midnight.'),
|
|
"alt-speed-time-day": ('number', 5, None, None, None, 'Enables alternate speeds scheduling these days.'),
|
|
"alt-speed-up": ('number', 5, None, None, None, 'Alternate session upload speed limit (in Kib/s).'),
|
|
"blocklist-enabled": ('boolean', 5, None, None, None, 'Enables the block list'),
|
|
"blocklist-url": ('string', 11, None, None, None, 'Location of the block list. Updated with blocklist-update.'),
|
|
"cache-size-mb": ('number', 10, None, None, None, 'The maximum size of the disk cache in MB'),
|
|
"dht-enabled": ('boolean', 6, None, None, None, 'Enables DHT.'),
|
|
"download-dir": ('string', 1, None, None, None, 'Set the session download directory.'),
|
|
"download-queue-size": ('number', 14, None, None, None, 'Number of slots in the download queue.'),
|
|
"download-queue-enabled": ('boolean', 14, None, None, None, 'Enables download queue.'),
|
|
"encryption": ('string', 1, None, None, None, 'Set the session encryption mode, one of ``required``, ``preferred`` or ``tolerated``.'),
|
|
"idle-seeding-limit": ('number', 10, None, None, None, 'The default seed inactivity limit in minutes.'),
|
|
"idle-seeding-limit-enabled": ('boolean', 10, None, None, None, 'Enables the default seed inactivity limit'),
|
|
"incomplete-dir": ('string', 7, None, None, None, 'The path to the directory of incomplete transfer data.'),
|
|
"incomplete-dir-enabled": ('boolean', 7, None, None, None, 'Enables the incomplete transfer data directory. Otherwise data for incomplete transfers are stored in the download target.'),
|
|
"lpd-enabled": ('boolean', 9, None, None, None, 'Enables local peer discovery for public torrents.'),
|
|
"peer-limit": ('number', 1, 5, None, 'peer-limit-global', 'Maximum number of peers.'),
|
|
"peer-limit-global": ('number', 5, None, 'peer-limit', None, 'Maximum number of peers.'),
|
|
"peer-limit-per-torrent": ('number', 5, None, None, None, 'Maximum number of peers per transfer.'),
|
|
"pex-allowed": ('boolean', 1, 5, None, 'pex-enabled', 'Allowing PEX in public torrents.'),
|
|
"pex-enabled": ('boolean', 5, None, 'pex-allowed', None, 'Allowing PEX in public torrents.'),
|
|
"port": ('number', 1, 5, None, 'peer-port', 'Peer port.'),
|
|
"peer-port": ('number', 5, None, 'port', None, 'Peer port.'),
|
|
"peer-port-random-on-start": ('boolean', 5, None, None, None, 'Enables randomized peer port on start of Transmission.'),
|
|
"port-forwarding-enabled": ('boolean', 1, None, None, None, 'Enables port forwarding.'),
|
|
"rename-partial-files": ('boolean', 8, None, None, None, 'Appends ".part" to incomplete files'),
|
|
"queue-stalled-minutes": ('number', 14, None, None, None, 'Number of minutes of idle that marks a transfer as stalled.'),
|
|
"queue-stalled-enabled": ('boolean', 14, None, None, None, 'Enable tracking of stalled transfers.'),
|
|
"script-torrent-done-enabled": ('boolean', 9, None, None, None, 'Whether or not to call the "done" script.'),
|
|
"script-torrent-done-filename": ('string', 9, None, None, None, 'Filename of the script to run when the transfer is done.'),
|
|
"seed-queue-size": ('number', 14, None, None, None, 'Number of slots in the upload queue.'),
|
|
"seed-queue-enabled": ('boolean', 14, None, None, None, 'Enables upload queue.'),
|
|
"seedRatioLimit": ('double', 5, None, None, None, 'Seed ratio limit. 1.0 means 1:1 download and upload ratio.'),
|
|
"seedRatioLimited": ('boolean', 5, None, None, None, 'Enables seed ration limit.'),
|
|
"speed-limit-down": ('number', 1, None, None, None, 'Download speed limit (in Kib/s).'),
|
|
"speed-limit-down-enabled": ('boolean', 1, None, None, None, 'Enables download speed limiting.'),
|
|
"speed-limit-up": ('number', 1, None, None, None, 'Upload speed limit (in Kib/s).'),
|
|
"speed-limit-up-enabled": ('boolean', 1, None, None, None, 'Enables upload speed limiting.'),
|
|
"start-added-torrents": ('boolean', 9, None, None, None, 'Added torrents will be started right away.'),
|
|
"trash-original-torrent-files": ('boolean', 9, None, None, None, 'The .torrent file of added torrents will be deleted.'),
|
|
'utp-enabled': ('boolean', 13, None, None, None, 'Enables Micro Transport Protocol (UTP).'),
|
|
},
|
|
}
|