mirror of https://github.com/evilhero/mylar
IMP:(#1987)(#2054)(#2106) accomodate rTorrent 0.9.7 API changes + maintain backwards compatibility (much thanks to @sparky3387 for the initial patch gist
This commit is contained in:
parent
547ef919b2
commit
24130a8270
|
@ -74,8 +74,13 @@ class RTorrent:
|
|||
if m.is_retriever() and m.is_available(self)]
|
||||
|
||||
m = rtorrent.rpc.Multicall(self)
|
||||
m.add("d.multicall", view, "d.get_hash=",
|
||||
*[method.rpc_call + "=" for method in retriever_methods])
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
MCFirstArg = ""
|
||||
m.add("d.multicall2", MCFirstArg, view, "d.hash=",
|
||||
*[method.rpc_call + "=" for method in retriever_methods])
|
||||
else:
|
||||
m.add("d.multicall", view, "d.get_hash=",
|
||||
*[method.rpc_call + "=" for method in retriever_methods])
|
||||
|
||||
results = m.call()[0] # only sent one call, only need first result
|
||||
|
||||
|
@ -116,16 +121,31 @@ class RTorrent:
|
|||
elif verbose:
|
||||
func_name = "load_verbose"
|
||||
else:
|
||||
func_name = "load"
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
func_name= "load.normal"
|
||||
else:
|
||||
func_name = "load"
|
||||
elif file_type in ["file", "raw"]:
|
||||
if start and verbose:
|
||||
func_name = "load_raw_start_verbose"
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
func_name = "load.raw_start_verbose"
|
||||
else:
|
||||
func_name = "load_raw_start_verbose"
|
||||
elif start:
|
||||
func_name = "load_raw_start"
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
func_name = "load.raw_start"
|
||||
else:
|
||||
func_name = "load_raw_start"
|
||||
elif verbose:
|
||||
func_name = "load_raw_verbose"
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
func_name = "load.raw_verbose"
|
||||
else:
|
||||
func_name = "load_raw_verbose"
|
||||
else:
|
||||
func_name = "load_raw"
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
func_name = "load.raw"
|
||||
else:
|
||||
func_name = "load_raw"
|
||||
|
||||
return(func_name)
|
||||
|
||||
|
@ -136,39 +156,79 @@ class RTorrent:
|
|||
info_hash = info_hash.upper()
|
||||
|
||||
func_name = self._get_load_function("url", start, verbose)
|
||||
|
||||
# load magnet
|
||||
getattr(p, func_name)(magneturl)
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
target = ""
|
||||
getattr(p, func_name)(target, magneturl)
|
||||
else:
|
||||
getattr(p, func_name)(magneturl)
|
||||
|
||||
magnet = False
|
||||
if verify_load:
|
||||
i = 0
|
||||
torrent = None
|
||||
while i < verify_retries:
|
||||
for tor in self.get_torrents():
|
||||
if tor.info_hash != info_hash:
|
||||
continue
|
||||
else:
|
||||
torrent = tor
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
for m in self.get_torrents():
|
||||
# This block finds the magnet that was just added, starts it, breaks
|
||||
# out of the for loop, and then out of the while loop.
|
||||
# If it can't find the magnet, magnet won't get defined.
|
||||
if m.info_hash == info_hash:
|
||||
magnet = m
|
||||
magnet.start()
|
||||
i += 999
|
||||
break
|
||||
else:
|
||||
for tor in self.get_torrents():
|
||||
if tor.info_hash != info_hash:
|
||||
continue
|
||||
else:
|
||||
torrent = tor
|
||||
break
|
||||
if torrent is not None:
|
||||
break
|
||||
if torrent is not None:
|
||||
break
|
||||
time.sleep(1)
|
||||
i += 1
|
||||
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
# If torrent hasn't been defined, sleep for a second and check again.
|
||||
if not magnet:
|
||||
time.sleep(1)
|
||||
i += 1
|
||||
|
||||
# This bit waits for the magnet to be resolved into an actual
|
||||
# torrent, and then starts it.
|
||||
torrent = False
|
||||
else:
|
||||
# Resolve magnet to torrent
|
||||
torrent.start()
|
||||
|
||||
assert info_hash in [t.info_hash for t in self.torrents],\
|
||||
"Adding magnet was unsuccessful."
|
||||
|
||||
i = 0
|
||||
while i < verify_retries:
|
||||
i = 0
|
||||
while i < verify_retries:
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
for t in self.get_torrents():
|
||||
if t.info_hash == info_hash:
|
||||
if str(info_hash) not in str(t.name):
|
||||
torrent = t
|
||||
torrent.start()
|
||||
i += 999
|
||||
break
|
||||
if not torrent:
|
||||
time.sleep(1)
|
||||
i += 1
|
||||
|
||||
else:
|
||||
for torrent in self.get_torrents():
|
||||
if torrent.info_hash == info_hash:
|
||||
if str(info_hash) not in str(torrent.name):
|
||||
time.sleep(1)
|
||||
i += 1
|
||||
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
assert info_hash in [t.info_hash for t in self.torrents],\
|
||||
"Adding magnet was unsuccessful."
|
||||
|
||||
return(torrent)
|
||||
|
||||
def load_torrent(self, torrent, start=False, verbose=False, verify_load=True, verify_retries=3):
|
||||
|
@ -213,7 +273,11 @@ class RTorrent:
|
|||
func_name = self._get_load_function("raw", start, verbose)
|
||||
|
||||
# load torrent
|
||||
getattr(p, func_name)(torrent)
|
||||
if Connection._get_client_version_tuple >= .97:
|
||||
target = ""
|
||||
getattr(p, func_name)(target, torrent)
|
||||
else:
|
||||
getattr(p, func_name)(torrent)
|
||||
|
||||
if verify_load:
|
||||
i = 0
|
||||
|
|
|
@ -57,35 +57,66 @@ class File:
|
|||
def __repr__(self):
|
||||
return safe_repr("File(index={0} path=\"{1}\")", self.index, self.path)
|
||||
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(File, 'get_last_touched', 'f.get_last_touched'),
|
||||
Method(File, 'get_range_second', 'f.get_range_second'),
|
||||
Method(File, 'get_size_bytes', 'f.get_size_bytes'),
|
||||
Method(File, 'get_priority', 'f.get_priority'),
|
||||
Method(File, 'get_match_depth_next', 'f.get_match_depth_next'),
|
||||
Method(File, 'is_resize_queued', 'f.is_resize_queued',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_range_first', 'f.get_range_first'),
|
||||
Method(File, 'get_match_depth_prev', 'f.get_match_depth_prev'),
|
||||
Method(File, 'get_path', 'f.get_path'),
|
||||
Method(File, 'get_completed_chunks', 'f.get_completed_chunks'),
|
||||
Method(File, 'get_path_components', 'f.get_path_components'),
|
||||
Method(File, 'is_created', 'f.is_created',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'is_open', 'f.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_size_chunks', 'f.get_size_chunks'),
|
||||
Method(File, 'get_offset', 'f.get_offset'),
|
||||
Method(File, 'get_frozen_path', 'f.get_frozen_path'),
|
||||
Method(File, 'get_path_depth', 'f.get_path_depth'),
|
||||
Method(File, 'is_create_queued', 'f.is_create_queued',
|
||||
boolean=True,
|
||||
),
|
||||
|
||||
|
||||
# MODIFIERS
|
||||
]
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(File, 'get_last_touched', 'f.last_touched'),
|
||||
Method(File, 'get_range_second', 'f.range_second'),
|
||||
Method(File, 'get_size_bytes', 'f.size_bytes'),
|
||||
Method(File, 'get_priority', 'f.priority'),
|
||||
Method(File, 'get_match_depth_next', 'f.match_depth_next'),
|
||||
Method(File, 'is_resize_queued', 'f.is_resize_queued',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_range_first', 'f.range_first'),
|
||||
Method(File, 'get_match_depth_prev', 'f.match_depth_prev'),
|
||||
Method(File, 'get_path', 'f.path'),
|
||||
Method(File, 'get_completed_chunks', 'f.completed_chunks'),
|
||||
Method(File, 'get_path_components', 'f.path_components'),
|
||||
Method(File, 'is_created', 'f.is_created',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'is_open', 'f.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_size_chunks', 'f.size_chunks'),
|
||||
Method(File, 'get_offset', 'f.offset'),
|
||||
Method(File, 'get_frozen_path', 'f.frozen_path'),
|
||||
Method(File, 'get_path_depth', 'f.path_depth'),
|
||||
Method(File, 'is_create_queued', 'f.is_create_queued',
|
||||
boolean=True,
|
||||
),
|
||||
# MODIFIERS
|
||||
]
|
||||
else:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(File, 'get_last_touched', 'f.get_last_touched'),
|
||||
Method(File, 'get_range_second', 'f.get_range_second'),
|
||||
Method(File, 'get_size_bytes', 'f.get_size_bytes'),
|
||||
Method(File, 'get_priority', 'f.get_priority'),
|
||||
Method(File, 'get_match_depth_next', 'f.get_match_depth_next'),
|
||||
Method(File, 'is_resize_queued', 'f.is_resize_queued',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_range_first', 'f.get_range_first'),
|
||||
Method(File, 'get_match_depth_prev', 'f.get_match_depth_prev'),
|
||||
Method(File, 'get_path', 'f.get_path'),
|
||||
Method(File, 'get_completed_chunks', 'f.get_completed_chunks'),
|
||||
Method(File, 'get_path_components', 'f.get_path_components'),
|
||||
Method(File, 'is_created', 'f.is_created',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'is_open', 'f.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(File, 'get_size_chunks', 'f.get_size_chunks'),
|
||||
Method(File, 'get_offset', 'f.get_offset'),
|
||||
Method(File, 'get_frozen_path', 'f.get_frozen_path'),
|
||||
Method(File, 'get_path_depth', 'f.get_path_depth'),
|
||||
Method(File, 'is_create_queued', 'f.is_create_queued',
|
||||
boolean=True,
|
||||
),
|
||||
# MODIFIERS
|
||||
]
|
||||
|
|
|
@ -55,44 +55,88 @@ class Peer:
|
|||
|
||||
multicall.call()
|
||||
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Peer, 'is_preferred', 'p.is_preferred',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_rate', 'p.get_down_rate'),
|
||||
Method(Peer, 'is_unwanted', 'p.is_unwanted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_peer_total', 'p.get_peer_total'),
|
||||
Method(Peer, 'get_peer_rate', 'p.get_peer_rate'),
|
||||
Method(Peer, 'get_port', 'p.get_port'),
|
||||
Method(Peer, 'is_snubbed', 'p.is_snubbed',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_id_html', 'p.get_id_html'),
|
||||
Method(Peer, 'get_up_rate', 'p.get_up_rate'),
|
||||
Method(Peer, 'is_banned', 'p.banned',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_completed_percent', 'p.get_completed_percent'),
|
||||
Method(Peer, 'completed_percent', 'p.completed_percent'),
|
||||
Method(Peer, 'get_id', 'p.get_id'),
|
||||
Method(Peer, 'is_obfuscated', 'p.is_obfuscated',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_total', 'p.get_down_total'),
|
||||
Method(Peer, 'get_client_version', 'p.get_client_version'),
|
||||
Method(Peer, 'get_address', 'p.get_address'),
|
||||
Method(Peer, 'is_incoming', 'p.is_incoming',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'is_encrypted', 'p.is_encrypted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_options_str', 'p.get_options_str'),
|
||||
Method(Peer, 'get_client_version', 'p.client_version'),
|
||||
Method(Peer, 'get_up_total', 'p.get_up_total'),
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Peer, 'is_preferred', 'p.is_preferred',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_rate', 'p.down_rate'),
|
||||
Method(Peer, 'is_unwanted', 'p.is_unwanted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_peer_total', 'p.peer_total'),
|
||||
Method(Peer, 'get_peer_rate', 'p.peer_rate'),
|
||||
Method(Peer, 'get_port', 'p.port'),
|
||||
Method(Peer, 'is_snubbed', 'p.is_snubbed',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_id_html', 'p.id_html'),
|
||||
Method(Peer, 'get_up_rate', 'p.up_rate'),
|
||||
Method(Peer, 'is_banned', 'p.banned',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_completed_percent', 'p.completed_percent'),
|
||||
Method(Peer, 'completed_percent', 'p.completed_percent'),
|
||||
Method(Peer, 'get_id', 'p.id'),
|
||||
Method(Peer, 'is_obfuscated', 'p.is_obfuscated',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_total', 'p.down_total'),
|
||||
Method(Peer, 'get_client_version', 'p.client_version'),
|
||||
Method(Peer, 'get_address', 'p.address'),
|
||||
Method(Peer, 'is_incoming', 'p.is_incoming',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'is_encrypted', 'p.is_encrypted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_options_str', 'p.options_str'),
|
||||
Method(Peer, 'get_client_version', 'p.client_version'),
|
||||
Method(Peer, 'get_up_total', 'p.up_total'),
|
||||
|
||||
# MODIFIERS
|
||||
]
|
||||
else:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Peer, 'is_preferred', 'p.is_preferred',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_rate', 'p.get_down_rate'),
|
||||
Method(Peer, 'is_unwanted', 'p.is_unwanted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_peer_total', 'p.get_peer_total'),
|
||||
Method(Peer, 'get_peer_rate', 'p.get_peer_rate'),
|
||||
Method(Peer, 'get_port', 'p.get_port'),
|
||||
Method(Peer, 'is_snubbed', 'p.is_snubbed',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_id_html', 'p.get_id_html'),
|
||||
Method(Peer, 'get_up_rate', 'p.get_up_rate'),
|
||||
Method(Peer, 'is_banned', 'p.banned',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_completed_percent', 'p.get_completed_percent'),
|
||||
Method(Peer, 'completed_percent', 'p.completed_percent'),
|
||||
Method(Peer, 'get_id', 'p.get_id'),
|
||||
Method(Peer, 'is_obfuscated', 'p.is_obfuscated',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_down_total', 'p.get_down_total'),
|
||||
Method(Peer, 'get_client_version', 'p.get_client_version'),
|
||||
Method(Peer, 'get_address', 'p.get_address'),
|
||||
Method(Peer, 'is_incoming', 'p.is_incoming',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'is_encrypted', 'p.is_encrypted',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Peer, 'get_options_str', 'p.get_options_str'),
|
||||
Method(Peer, 'get_client_version', 'p.client_version'),
|
||||
Method(Peer, 'get_up_total', 'p.get_up_total'),
|
||||
|
||||
# MODIFIERS
|
||||
]
|
||||
|
||||
# MODIFIERS
|
||||
]
|
||||
|
|
|
@ -38,13 +38,16 @@ def get_varname(rpc_call):
|
|||
r = re.search(
|
||||
"([ptdf]\.|system\.|get\_|is\_|set\_)+([^=]*)", rpc_call, re.I)
|
||||
if r:
|
||||
return(r.groups()[-1])
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
return(r.groups()[-1].replace(".","_"))
|
||||
else:
|
||||
return(r.groups()[-1])
|
||||
else:
|
||||
return(None)
|
||||
|
||||
|
||||
def _handle_unavailable_rpc_method(method, rt_obj):
|
||||
msg = "Method isn't available."
|
||||
msg = "Method " + str(method) + "isn't available."
|
||||
if rt_obj.connection._get_client_version_tuple() < method.min_version:
|
||||
msg = "This method is only available in " \
|
||||
"RTorrent version v{0} or later".format(
|
||||
|
@ -91,7 +94,7 @@ class Method:
|
|||
|
||||
def _get_method_type(self):
|
||||
"""Determine whether method is a modifier or a retriever"""
|
||||
if self.method_name[:4] == "set_": return('m') # modifier
|
||||
if self.method_name[:4] == "set_" or self.method_name[-4:] == ".set": return('m') # modifier
|
||||
else:
|
||||
return('r') # retriever
|
||||
|
||||
|
|
|
@ -138,8 +138,12 @@ class Torrent:
|
|||
|
||||
results = m.call()[0] # only sent one call, only need first result
|
||||
|
||||
offset_method_index = retriever_methods.index(
|
||||
rtorrent.rpc.find_method("f.get_offset"))
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
offset_method_index = retriever_methods.index(
|
||||
rtorrent.rpc.find_method("f.offset"))
|
||||
else:
|
||||
offset_method_index = retriever_methods.index(
|
||||
rtorrent.rpc.find_method("f.get_offset"))
|
||||
|
||||
# make a list of the offsets of all the files, sort appropriately
|
||||
offset_list = sorted([r[offset_method_index] for r in results])
|
||||
|
@ -168,7 +172,10 @@ class Torrent:
|
|||
"""
|
||||
m = rtorrent.rpc.Multicall(self)
|
||||
self.multicall_add(m, "d.try_stop")
|
||||
self.multicall_add(m, "d.set_directory", d)
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
self.multicall_add(m, "d.directory.set", d)
|
||||
else:
|
||||
self.multicall_add(m, "d.set_directory", d)
|
||||
|
||||
self.directory = m.call()[-1]
|
||||
|
||||
|
@ -181,7 +188,10 @@ class Torrent:
|
|||
"""
|
||||
m = rtorrent.rpc.Multicall(self)
|
||||
self.multicall_add(m, "d.try_stop")
|
||||
self.multicall_add(m, "d.set_directory_base", d)
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
self.multicall_add(m, "d.directory_base.set", d)
|
||||
else:
|
||||
self.multicall_add(m, "d.set_directory_base", d)
|
||||
|
||||
def start(self):
|
||||
"""Start the torrent"""
|
||||
|
@ -304,7 +314,10 @@ class Torrent:
|
|||
m = rtorrent.rpc.Multicall(self)
|
||||
|
||||
field = "custom{0}".format(key)
|
||||
self.multicall_add(m, "d.get_{0}".format(field))
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
self.multicall_add(m, "d.{0}".format(field))
|
||||
else:
|
||||
self.multicall_add(m, "d.get_{0}".format(field))
|
||||
setattr(self, field, m.call()[-1])
|
||||
|
||||
return (getattr(self, field))
|
||||
|
@ -326,7 +339,10 @@ class Torrent:
|
|||
self._assert_custom_key_valid(key)
|
||||
m = rtorrent.rpc.Multicall(self)
|
||||
|
||||
self.multicall_add(m, "d.set_custom{0}".format(key), value)
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
self.multicall_add(m, "d.custom{0}.set".format(key), value)
|
||||
else:
|
||||
self.multicall_add(m, "d.set_custom{0}".format(key), value)
|
||||
|
||||
return(m.call()[-1])
|
||||
|
||||
|
@ -355,7 +371,10 @@ class Torrent:
|
|||
|
||||
@note: Variable where the result for this method is stored Torrent.hash_checking_queued"""
|
||||
m = rtorrent.rpc.Multicall(self)
|
||||
self.multicall_add(m, "d.get_hashing")
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
self.multicall_add(m, "d.hashing")
|
||||
else:
|
||||
self.multicall_add(m, "d.get_hashing")
|
||||
self.multicall_add(m, "d.is_hash_checking")
|
||||
results = m.call()
|
||||
|
||||
|
@ -389,129 +408,258 @@ class Torrent:
|
|||
return(self._is_started())
|
||||
|
||||
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Torrent, 'is_hash_checked', 'd.is_hash_checked',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'is_hash_checking', 'd.is_hash_checking',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_max', 'd.get_peers_max'),
|
||||
Method(Torrent, 'get_tracker_focus', 'd.get_tracker_focus'),
|
||||
Method(Torrent, 'get_skip_total', 'd.get_skip_total'),
|
||||
Method(Torrent, 'get_state', 'd.get_state'),
|
||||
Method(Torrent, 'get_peer_exchange', 'd.get_peer_exchange'),
|
||||
Method(Torrent, 'get_down_rate', 'd.get_down_rate'),
|
||||
Method(Torrent, 'get_connection_seed', 'd.get_connection_seed'),
|
||||
Method(Torrent, 'get_uploads_max', 'd.get_uploads_max'),
|
||||
Method(Torrent, 'get_priority_str', 'd.get_priority_str'),
|
||||
Method(Torrent, 'is_open', 'd.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_min', 'd.get_peers_min'),
|
||||
Method(Torrent, 'get_peers_complete', 'd.get_peers_complete'),
|
||||
Method(Torrent, 'get_tracker_numwant', 'd.get_tracker_numwant'),
|
||||
Method(Torrent, 'get_connection_current', 'd.get_connection_current'),
|
||||
Method(Torrent, 'is_complete', 'd.get_complete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_connected', 'd.get_peers_connected'),
|
||||
Method(Torrent, 'get_chunk_size', 'd.get_chunk_size'),
|
||||
Method(Torrent, 'get_state_counter', 'd.get_state_counter'),
|
||||
Method(Torrent, 'get_base_filename', 'd.get_base_filename'),
|
||||
Method(Torrent, 'get_state_changed', 'd.get_state_changed'),
|
||||
Method(Torrent, 'get_peers_not_connected', 'd.get_peers_not_connected'),
|
||||
Method(Torrent, 'get_directory', 'd.get_directory'),
|
||||
Method(Torrent, 'is_incomplete', 'd.incomplete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_tracker_size', 'd.get_tracker_size'),
|
||||
Method(Torrent, 'is_multi_file', 'd.is_multi_file',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_local_id', 'd.get_local_id'),
|
||||
Method(Torrent, 'get_ratio', 'd.get_ratio',
|
||||
post_process_func=lambda x: x / 1000.0,
|
||||
),
|
||||
Method(Torrent, 'get_loaded_file', 'd.get_loaded_file'),
|
||||
Method(Torrent, 'get_max_file_size', 'd.get_max_file_size'),
|
||||
Method(Torrent, 'get_size_chunks', 'd.get_size_chunks'),
|
||||
Method(Torrent, 'is_pex_active', 'd.is_pex_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_hashing', 'd.get_hashing'),
|
||||
Method(Torrent, 'get_bitfield', 'd.get_bitfield'),
|
||||
Method(Torrent, 'get_local_id_html', 'd.get_local_id_html'),
|
||||
Method(Torrent, 'get_connection_leech', 'd.get_connection_leech'),
|
||||
Method(Torrent, 'get_peers_accounted', 'd.get_peers_accounted'),
|
||||
Method(Torrent, 'get_message', 'd.get_message'),
|
||||
Method(Torrent, 'is_active', 'd.is_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_size_bytes', 'd.get_size_bytes'),
|
||||
Method(Torrent, 'get_ignore_commands', 'd.get_ignore_commands'),
|
||||
Method(Torrent, 'get_creation_date', 'd.get_creation_date'),
|
||||
Method(Torrent, 'get_base_path', 'd.get_base_path'),
|
||||
Method(Torrent, 'get_left_bytes', 'd.get_left_bytes'),
|
||||
Method(Torrent, 'get_size_files', 'd.get_size_files'),
|
||||
Method(Torrent, 'get_size_pex', 'd.get_size_pex'),
|
||||
Method(Torrent, 'is_private', 'd.is_private',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_max_size_pex', 'd.get_max_size_pex'),
|
||||
Method(Torrent, 'get_num_chunks_hashed', 'd.get_chunks_hashed',
|
||||
aliases=("get_chunks_hashed",)),
|
||||
Method(Torrent, 'get_num_chunks_wanted', 'd.wanted_chunks'),
|
||||
Method(Torrent, 'get_priority', 'd.get_priority'),
|
||||
Method(Torrent, 'get_skip_rate', 'd.get_skip_rate'),
|
||||
Method(Torrent, 'get_completed_bytes', 'd.get_completed_bytes'),
|
||||
Method(Torrent, 'get_name', 'd.get_name'),
|
||||
Method(Torrent, 'get_completed_chunks', 'd.get_completed_chunks'),
|
||||
Method(Torrent, 'get_throttle_name', 'd.get_throttle_name'),
|
||||
Method(Torrent, 'get_free_diskspace', 'd.get_free_diskspace'),
|
||||
Method(Torrent, 'get_directory_base', 'd.get_directory_base'),
|
||||
Method(Torrent, 'get_hashing_failed', 'd.get_hashing_failed'),
|
||||
Method(Torrent, 'get_tied_to_file', 'd.get_tied_to_file'),
|
||||
Method(Torrent, 'get_down_total', 'd.get_down_total'),
|
||||
Method(Torrent, 'get_bytes_done', 'd.get_bytes_done'),
|
||||
Method(Torrent, 'get_up_rate', 'd.get_up_rate'),
|
||||
Method(Torrent, 'get_up_total', 'd.get_up_total'),
|
||||
Method(Torrent, 'is_accepting_seeders', 'd.accepting_seeders',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_chunks_seen", "d.chunks_seen",
|
||||
min_version=(0, 9, 1),
|
||||
),
|
||||
Method(Torrent, "is_partially_done", "d.is_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "is_not_partially_done", "d.is_not_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_time_started", "d.timestamp.started"),
|
||||
Method(Torrent, "get_custom1", "d.get_custom1"),
|
||||
Method(Torrent, "get_custom2", "d.get_custom2"),
|
||||
Method(Torrent, "get_custom3", "d.get_custom3"),
|
||||
Method(Torrent, "get_custom4", "d.get_custom4"),
|
||||
Method(Torrent, "get_custom5", "d.get_custom5"),
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Torrent, 'is_hash_checked', 'd.is_hash_checked',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'is_hash_checking', 'd.is_hash_checking',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_max', 'd.peers_max'),
|
||||
Method(Torrent, 'get_tracker_focus', 'd.tracker_focus'),
|
||||
Method(Torrent, 'get_skip_total', 'd.skip_total'),
|
||||
Method(Torrent, 'get_state', 'd.state'),
|
||||
Method(Torrent, 'get_peer_exchange', 'd.peer_exchange'),
|
||||
Method(Torrent, 'get_down_rate', 'd.down_rate'),
|
||||
Method(Torrent, 'get_connection_seed', 'd.connection_seed'),
|
||||
Method(Torrent, 'get_uploads_max', 'd.uploads_max'),
|
||||
Method(Torrent, 'get_priority_str', 'd.priority_str'),
|
||||
Method(Torrent, 'is_open', 'd.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_min', 'd.peers_min'),
|
||||
Method(Torrent, 'get_peers_complete', 'd.peers_complete'),
|
||||
Method(Torrent, 'get_tracker_numwant', 'd.tracker_numwant'),
|
||||
Method(Torrent, 'get_connection_current', 'd.connection_current'),
|
||||
Method(Torrent, 'is_complete', 'd.complete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_connected', 'd.peers_connected'),
|
||||
Method(Torrent, 'get_chunk_size', 'd.chunk_size'),
|
||||
Method(Torrent, 'get_state_counter', 'd.state_counter'),
|
||||
Method(Torrent, 'get_base_filename', 'd.base_filename'),
|
||||
Method(Torrent, 'get_state_changed', 'd.state_changed'),
|
||||
Method(Torrent, 'get_peers_not_connected', 'd.peers_not_connected'),
|
||||
Method(Torrent, 'get_directory', 'd.directory'),
|
||||
Method(Torrent, 'is_incomplete', 'd.incomplete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_tracker_size', 'd.tracker_size'),
|
||||
Method(Torrent, 'is_multi_file', 'd.is_multi_file',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_local_id', 'd.local_id'),
|
||||
Method(Torrent, 'get_ratio', 'd.ratio',
|
||||
post_process_func=lambda x: x / 1000.0,
|
||||
),
|
||||
Method(Torrent, 'get_loaded_file', 'd.loaded_file'),
|
||||
Method(Torrent, 'get_max_file_size', 'd.max_file_size'),
|
||||
Method(Torrent, 'get_size_chunks', 'd.size_chunks'),
|
||||
Method(Torrent, 'is_pex_active', 'd.is_pex_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_hashing', 'd.hashing'),
|
||||
Method(Torrent, 'get_bitfield', 'd.bitfield'),
|
||||
Method(Torrent, 'get_local_id_html', 'd.local_id_html'),
|
||||
Method(Torrent, 'get_connection_leech', 'd.connection_leech'),
|
||||
Method(Torrent, 'get_peers_accounted', 'd.peers_accounted'),
|
||||
Method(Torrent, 'get_message', 'd.message'),
|
||||
Method(Torrent, 'is_active', 'd.is_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_size_bytes', 'd.size_bytes'),
|
||||
Method(Torrent, 'get_ignore_commands', 'd.ignore_commands'),
|
||||
Method(Torrent, 'get_creation_date', 'd.creation_date'),
|
||||
Method(Torrent, 'get_base_path', 'd.base_path'),
|
||||
Method(Torrent, 'get_left_bytes', 'd.left_bytes'),
|
||||
Method(Torrent, 'get_size_files', 'd.size_files'),
|
||||
Method(Torrent, 'get_size_pex', 'd.size_pex'),
|
||||
Method(Torrent, 'is_private', 'd.is_private',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_max_size_pex', 'd.max_size_pex'),
|
||||
Method(Torrent, 'get_num_chunks_hashed', 'd.chunks_hashed',
|
||||
aliases=("get_chunks_hashed",)),
|
||||
Method(Torrent, 'get_num_chunks_wanted', 'd.wanted_chunks'),
|
||||
Method(Torrent, 'get_priority', 'd.priority'),
|
||||
Method(Torrent, 'get_skip_rate', 'd.skip.rate'),
|
||||
Method(Torrent, 'get_completed_bytes', 'd.completed_bytes'),
|
||||
Method(Torrent, 'get_name', 'd.name'),
|
||||
Method(Torrent, 'get_completed_chunks', 'd.completed_chunks'),
|
||||
Method(Torrent, 'get_throttle_name', 'd.throttle_name'),
|
||||
Method(Torrent, 'get_free_diskspace', 'd.free_diskspace'),
|
||||
Method(Torrent, 'get_directory_base', 'd.directory_base'),
|
||||
Method(Torrent, 'get_hashing_failed', 'd.hashing_failed'),
|
||||
Method(Torrent, 'get_tied_to_file', 'd.tied_to_file'),
|
||||
Method(Torrent, 'get_down_total', 'd.down.total'),
|
||||
Method(Torrent, 'get_bytes_done', 'd.bytes_done'),
|
||||
Method(Torrent, 'get_up_rate', 'd.up.rate'),
|
||||
Method(Torrent, 'get_up_total', 'd.up.total'),
|
||||
Method(Torrent, 'is_accepting_seeders', 'd.accepting_seeders',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_chunks_seen", "d.chunks_seen",
|
||||
min_version=(0, 9, 1),
|
||||
),
|
||||
Method(Torrent, "is_partially_done", "d.is_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "is_not_partially_done", "d.is_not_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_time_started", "d.timestamp.started"),
|
||||
Method(Torrent, "get_custom1", "d.custom1"),
|
||||
Method(Torrent, "get_custom2", "d.custom2"),
|
||||
Method(Torrent, "get_custom3", "d.custom3"),
|
||||
Method(Torrent, "get_custom4", "d.custom4"),
|
||||
Method(Torrent, "get_custom5", "d.custom5"),
|
||||
|
||||
# MODIFIERS
|
||||
Method(Torrent, 'set_uploads_max', 'd.set_uploads_max'),
|
||||
Method(Torrent, 'set_tied_to_file', 'd.set_tied_to_file'),
|
||||
Method(Torrent, 'set_tracker_numwant', 'd.set_tracker_numwant'),
|
||||
Method(Torrent, 'set_priority', 'd.set_priority'),
|
||||
Method(Torrent, 'set_peers_max', 'd.set_peers_max'),
|
||||
Method(Torrent, 'set_hashing_failed', 'd.set_hashing_failed'),
|
||||
Method(Torrent, 'set_message', 'd.set_message'),
|
||||
Method(Torrent, 'set_throttle_name', 'd.set_throttle_name'),
|
||||
Method(Torrent, 'set_peers_min', 'd.set_peers_min'),
|
||||
Method(Torrent, 'set_ignore_commands', 'd.set_ignore_commands'),
|
||||
Method(Torrent, 'set_max_file_size', 'd.set_max_file_size'),
|
||||
Method(Torrent, 'set_custom5', 'd.set_custom5'),
|
||||
Method(Torrent, 'set_custom4', 'd.set_custom4'),
|
||||
Method(Torrent, 'set_custom2', 'd.set_custom2'),
|
||||
Method(Torrent, 'set_custom1', 'd.set_custom1'),
|
||||
Method(Torrent, 'set_custom3', 'd.set_custom3'),
|
||||
Method(Torrent, 'set_connection_current', 'd.set_connection_current'),
|
||||
]
|
||||
# MODIFIERS
|
||||
Method(Torrent, 'set_uploads_max', 'd.uploads_max.set'),
|
||||
Method(Torrent, 'set_tied_to_file', 'd.tied_to_file.set'),
|
||||
Method(Torrent, 'set_tracker_numwant', 'd.tracker_numwant.set'),
|
||||
Method(Torrent, 'set_priority', 'd.priority.set'),
|
||||
Method(Torrent, 'set_peers_max', 'd.peers_max.set'),
|
||||
Method(Torrent, 'set_hashing_failed', 'd.hashing_failed.set'),
|
||||
Method(Torrent, 'set_message', 'd.message.set'),
|
||||
Method(Torrent, 'set_throttle_name', 'd.throttle_name.set'),
|
||||
Method(Torrent, 'set_peers_min', 'd.peers_min.set'),
|
||||
Method(Torrent, 'set_ignore_commands', 'd.ignore_commands.set'),
|
||||
Method(Torrent, 'set_max_file_size', 'd.max_file_size.set'),
|
||||
Method(Torrent, 'set_custom5', 'd.custom5.set'),
|
||||
Method(Torrent, 'set_custom4', 'd.custom4.set'),
|
||||
Method(Torrent, 'set_custom2', 'd.custom2.set'),
|
||||
Method(Torrent, 'set_custom1', 'd.custom1.set'),
|
||||
Method(Torrent, 'set_custom3', 'd.custom3.set'),
|
||||
Method(Torrent, 'set_connection_current', 'd.connection_current.set'),
|
||||
]
|
||||
|
||||
else:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Torrent, 'is_hash_checked', 'd.is_hash_checked',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'is_hash_checking', 'd.is_hash_checking',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_max', 'd.get_peers_max'),
|
||||
Method(Torrent, 'get_tracker_focus', 'd.get_tracker_focus'),
|
||||
Method(Torrent, 'get_skip_total', 'd.get_skip_total'),
|
||||
Method(Torrent, 'get_state', 'd.get_state'),
|
||||
Method(Torrent, 'get_peer_exchange', 'd.get_peer_exchange'),
|
||||
Method(Torrent, 'get_down_rate', 'd.get_down_rate'),
|
||||
Method(Torrent, 'get_connection_seed', 'd.get_connection_seed'),
|
||||
Method(Torrent, 'get_uploads_max', 'd.get_uploads_max'),
|
||||
Method(Torrent, 'get_priority_str', 'd.get_priority_str'),
|
||||
Method(Torrent, 'is_open', 'd.is_open',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_min', 'd.get_peers_min'),
|
||||
Method(Torrent, 'get_peers_complete', 'd.get_peers_complete'),
|
||||
Method(Torrent, 'get_tracker_numwant', 'd.get_tracker_numwant'),
|
||||
Method(Torrent, 'get_connection_current', 'd.get_connection_current'),
|
||||
Method(Torrent, 'is_complete', 'd.get_complete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_peers_connected', 'd.get_peers_connected'),
|
||||
Method(Torrent, 'get_chunk_size', 'd.get_chunk_size'),
|
||||
Method(Torrent, 'get_state_counter', 'd.get_state_counter'),
|
||||
Method(Torrent, 'get_base_filename', 'd.get_base_filename'),
|
||||
Method(Torrent, 'get_state_changed', 'd.get_state_changed'),
|
||||
Method(Torrent, 'get_peers_not_connected', 'd.get_peers_not_connected'),
|
||||
Method(Torrent, 'get_directory', 'd.get_directory'),
|
||||
Method(Torrent, 'is_incomplete', 'd.incomplete',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_tracker_size', 'd.get_tracker_size'),
|
||||
Method(Torrent, 'is_multi_file', 'd.is_multi_file',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_local_id', 'd.get_local_id'),
|
||||
Method(Torrent, 'get_ratio', 'd.get_ratio',
|
||||
post_process_func=lambda x: x / 1000.0,
|
||||
),
|
||||
Method(Torrent, 'get_loaded_file', 'd.get_loaded_file'),
|
||||
Method(Torrent, 'get_max_file_size', 'd.get_max_file_size'),
|
||||
Method(Torrent, 'get_size_chunks', 'd.get_size_chunks'),
|
||||
Method(Torrent, 'is_pex_active', 'd.is_pex_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_hashing', 'd.get_hashing'),
|
||||
Method(Torrent, 'get_bitfield', 'd.get_bitfield'),
|
||||
Method(Torrent, 'get_local_id_html', 'd.get_local_id_html'),
|
||||
Method(Torrent, 'get_connection_leech', 'd.get_connection_leech'),
|
||||
Method(Torrent, 'get_peers_accounted', 'd.get_peers_accounted'),
|
||||
Method(Torrent, 'get_message', 'd.get_message'),
|
||||
Method(Torrent, 'is_active', 'd.is_active',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_size_bytes', 'd.get_size_bytes'),
|
||||
Method(Torrent, 'get_ignore_commands', 'd.get_ignore_commands'),
|
||||
Method(Torrent, 'get_creation_date', 'd.get_creation_date'),
|
||||
Method(Torrent, 'get_base_path', 'd.get_base_path'),
|
||||
Method(Torrent, 'get_left_bytes', 'd.get_left_bytes'),
|
||||
Method(Torrent, 'get_size_files', 'd.get_size_files'),
|
||||
Method(Torrent, 'get_size_pex', 'd.get_size_pex'),
|
||||
Method(Torrent, 'is_private', 'd.is_private',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, 'get_max_size_pex', 'd.get_max_size_pex'),
|
||||
Method(Torrent, 'get_num_chunks_hashed', 'd.get_chunks_hashed',
|
||||
aliases=("get_chunks_hashed",)),
|
||||
Method(Torrent, 'get_num_chunks_wanted', 'd.wanted_chunks'),
|
||||
Method(Torrent, 'get_priority', 'd.get_priority'),
|
||||
Method(Torrent, 'get_skip_rate', 'd.get_skip_rate'),
|
||||
Method(Torrent, 'get_completed_bytes', 'd.get_completed_bytes'),
|
||||
Method(Torrent, 'get_name', 'd.get_name'),
|
||||
Method(Torrent, 'get_completed_chunks', 'd.get_completed_chunks'),
|
||||
Method(Torrent, 'get_throttle_name', 'd.get_throttle_name'),
|
||||
Method(Torrent, 'get_free_diskspace', 'd.get_free_diskspace'),
|
||||
Method(Torrent, 'get_directory_base', 'd.get_directory_base'),
|
||||
Method(Torrent, 'get_hashing_failed', 'd.get_hashing_failed'),
|
||||
Method(Torrent, 'get_tied_to_file', 'd.get_tied_to_file'),
|
||||
Method(Torrent, 'get_down_total', 'd.get_down_total'),
|
||||
Method(Torrent, 'get_bytes_done', 'd.get_bytes_done'),
|
||||
Method(Torrent, 'get_up_rate', 'd.get_up_rate'),
|
||||
Method(Torrent, 'get_up_total', 'd.get_up_total'),
|
||||
Method(Torrent, 'is_accepting_seeders', 'd.accepting_seeders',
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_chunks_seen", "d.chunks_seen",
|
||||
min_version=(0, 9, 1),
|
||||
),
|
||||
Method(Torrent, "is_partially_done", "d.is_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "is_not_partially_done", "d.is_not_partially_done",
|
||||
boolean=True,
|
||||
),
|
||||
Method(Torrent, "get_time_started", "d.timestamp.started"),
|
||||
Method(Torrent, "get_custom1", "d.get_custom1"),
|
||||
Method(Torrent, "get_custom2", "d.get_custom2"),
|
||||
Method(Torrent, "get_custom3", "d.get_custom3"),
|
||||
Method(Torrent, "get_custom4", "d.get_custom4"),
|
||||
Method(Torrent, "get_custom5", "d.get_custom5"),
|
||||
|
||||
# MODIFIERS
|
||||
Method(Torrent, 'set_uploads_max', 'd.set_uploads_max'),
|
||||
Method(Torrent, 'set_tied_to_file', 'd.set_tied_to_file'),
|
||||
Method(Torrent, 'set_tracker_numwant', 'd.set_tracker_numwant'),
|
||||
Method(Torrent, 'set_priority', 'd.set_priority'),
|
||||
Method(Torrent, 'set_peers_max', 'd.set_peers_max'),
|
||||
Method(Torrent, 'set_hashing_failed', 'd.set_hashing_failed'),
|
||||
Method(Torrent, 'set_message', 'd.set_message'),
|
||||
Method(Torrent, 'set_throttle_name', 'd.set_throttle_name'),
|
||||
Method(Torrent, 'set_peers_min', 'd.set_peers_min'),
|
||||
Method(Torrent, 'set_ignore_commands', 'd.set_ignore_commands'),
|
||||
Method(Torrent, 'set_max_file_size', 'd.set_max_file_size'),
|
||||
Method(Torrent, 'set_custom5', 'd.set_custom5'),
|
||||
Method(Torrent, 'set_custom4', 'd.set_custom4'),
|
||||
Method(Torrent, 'set_custom2', 'd.set_custom2'),
|
||||
Method(Torrent, 'set_custom1', 'd.set_custom1'),
|
||||
Method(Torrent, 'set_custom3', 'd.set_custom3'),
|
||||
Method(Torrent, 'set_connection_current', 'd.set_connection_current'),
|
||||
]
|
||||
|
|
|
@ -67,72 +67,144 @@ class Tracker:
|
|||
|
||||
multicall.call()
|
||||
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Tracker, 'is_enabled', 't.is_enabled', boolean=True),
|
||||
Method(Tracker, 'get_id', 't.get_id'),
|
||||
Method(Tracker, 'get_scrape_incomplete', 't.get_scrape_incomplete'),
|
||||
Method(Tracker, 'is_open', 't.is_open', boolean=True),
|
||||
Method(Tracker, 'get_min_interval', 't.get_min_interval'),
|
||||
Method(Tracker, 'get_scrape_downloaded', 't.get_scrape_downloaded'),
|
||||
Method(Tracker, 'get_group', 't.get_group'),
|
||||
Method(Tracker, 'get_scrape_time_last', 't.get_scrape_time_last'),
|
||||
Method(Tracker, 'get_type', 't.get_type'),
|
||||
Method(Tracker, 'get_normal_interval', 't.get_normal_interval'),
|
||||
Method(Tracker, 'get_url', 't.get_url'),
|
||||
Method(Tracker, 'get_scrape_complete', 't.get_scrape_complete',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_last', 't.activity_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_next', 't.activity_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_last', 't.failed_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_next', 't.failed_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_last', 't.success_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_next', 't.success_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'can_scrape', 't.can_scrape',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'get_failed_counter', 't.failed_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_scrape_counter', 't.scrape_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_success_counter', 't.success_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'is_usable', 't.is_usable',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_busy', 't.is_busy',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_extra_tracker', 't.is_extra_tracker',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True,
|
||||
),
|
||||
Method(Tracker, "get_latest_sum_peers", "t.latest_sum_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
Method(Tracker, "get_latest_new_peers", "t.latest_new_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
if rtorrent.connection.Connection._get_client_version_tuple >= .97:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Tracker, 'is_enabled', 't.is_enabled', boolean=True),
|
||||
Method(Tracker, 'get_id', 't.id'),
|
||||
Method(Tracker, 'get_scrape_incomplete', 't.scrape_incomplete'),
|
||||
Method(Tracker, 'is_open', 't.is_open', boolean=True),
|
||||
Method(Tracker, 'get_min_interval', 't.min_interval'),
|
||||
Method(Tracker, 'get_scrape_downloaded', 't.scrape_downloaded'),
|
||||
Method(Tracker, 'get_group', 't.group'),
|
||||
Method(Tracker, 'get_scrape_time_last', 't.scrape_time_last'),
|
||||
Method(Tracker, 'get_type', 't.type'),
|
||||
Method(Tracker, 'get_normal_interval', 't.normal_interval'),
|
||||
Method(Tracker, 'get_url', 't.url'),
|
||||
Method(Tracker, 'get_scrape_complete', 't.scrape_complete',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_last', 't.activity_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_next', 't.activity_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_last', 't.failed_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_next', 't.failed_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_last', 't.success_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_next', 't.success_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'can_scrape', 't.can_scrape',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'get_failed_counter', 't.failed_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_scrape_counter', 't.scrape_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_success_counter', 't.success_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'is_usable', 't.is_usable',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_busy', 't.is_busy',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_extra_tracker', 't.is_extra_tracker',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True,
|
||||
),
|
||||
Method(Tracker, "get_latest_sum_peers", "t.latest_sum_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
Method(Tracker, "get_latest_new_peers", "t.latest_new_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
|
||||
# MODIFIERS
|
||||
Method(Tracker, 'set_enabled', 't.set_enabled'),
|
||||
]
|
||||
# MODIFIERS
|
||||
Method(Tracker, 'set_enabled', 't.is_enabled.set'),
|
||||
]
|
||||
|
||||
else:
|
||||
methods = [
|
||||
# RETRIEVERS
|
||||
Method(Tracker, 'is_enabled', 't.is_enabled', boolean=True),
|
||||
Method(Tracker, 'get_id', 't.get_id'),
|
||||
Method(Tracker, 'get_scrape_incomplete', 't.get_scrape_incomplete'),
|
||||
Method(Tracker, 'is_open', 't.is_open', boolean=True),
|
||||
Method(Tracker, 'get_min_interval', 't.get_min_interval'),
|
||||
Method(Tracker, 'get_scrape_downloaded', 't.get_scrape_downloaded'),
|
||||
Method(Tracker, 'get_group', 't.get_group'),
|
||||
Method(Tracker, 'get_scrape_time_last', 't.get_scrape_time_last'),
|
||||
Method(Tracker, 'get_type', 't.get_type'),
|
||||
Method(Tracker, 'get_normal_interval', 't.get_normal_interval'),
|
||||
Method(Tracker, 'get_url', 't.get_url'),
|
||||
Method(Tracker, 'get_scrape_complete', 't.get_scrape_complete',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_last', 't.activity_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_activity_time_next', 't.activity_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_last', 't.failed_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_failed_time_next', 't.failed_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_last', 't.success_time_last',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'get_success_time_next', 't.success_time_next',
|
||||
min_version=(0, 8, 9),
|
||||
),
|
||||
Method(Tracker, 'can_scrape', 't.can_scrape',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'get_failed_counter', 't.failed_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_scrape_counter', 't.scrape_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'get_success_counter', 't.success_counter',
|
||||
min_version=(0, 8, 9)
|
||||
),
|
||||
Method(Tracker, 'is_usable', 't.is_usable',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_busy', 't.is_busy',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True
|
||||
),
|
||||
Method(Tracker, 'is_extra_tracker', 't.is_extra_tracker',
|
||||
min_version=(0, 9, 1),
|
||||
boolean=True,
|
||||
),
|
||||
Method(Tracker, "get_latest_sum_peers", "t.latest_sum_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
Method(Tracker, "get_latest_new_peers", "t.latest_new_peers",
|
||||
min_version=(0, 9, 0)
|
||||
),
|
||||
|
||||
# MODIFIERS
|
||||
Method(Tracker, 'set_enabled', 't.set_enabled'),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue