Add super_seeding to core
This commit is contained in:
parent
3180bc7104
commit
246708e222
|
@ -623,6 +623,11 @@ class Core(component.Component):
|
|||
"""Sets the path for the torrent to be moved when completed"""
|
||||
return self.torrentmanager[torrent_id].set_move_completed_path(value)
|
||||
|
||||
@export
|
||||
def set_torrent_super_seeding(self, torrent_id, value):
|
||||
"""Sets the path for the torrent to be moved when completed"""
|
||||
return self.torrentmanager[torrent_id].set_super_seeding(value)
|
||||
|
||||
@export(AUTH_LEVEL_ADMIN)
|
||||
def set_torrents_owner(self, torrent_ids, username):
|
||||
"""Set's the torrent owner.
|
||||
|
|
|
@ -148,7 +148,8 @@ DEFAULT_PREFS = {
|
|||
"cache_size": 512,
|
||||
"cache_expiry": 60,
|
||||
"auto_manage_prefer_seeds": False,
|
||||
"shared": False
|
||||
"shared": False,
|
||||
"super_seeding": False
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -100,7 +100,8 @@ class TorrentOptions(dict):
|
|||
"move_completed": "move_completed",
|
||||
"move_completed_path": "move_completed_path",
|
||||
"add_paused": "add_paused",
|
||||
"shared": "shared"
|
||||
"shared": "shared",
|
||||
"super_seeding": "super_seeding"
|
||||
}
|
||||
for opt_k, conf_k in options_conf_map.iteritems():
|
||||
self[opt_k] = config[conf_k]
|
||||
|
@ -331,6 +332,13 @@ class Torrent(object):
|
|||
self.handle.auto_managed(auto_managed)
|
||||
self.update_state()
|
||||
|
||||
def set_super_seeding(self, super_seeding):
|
||||
if super_seeding and self.status.is_seed:
|
||||
self.options["super_seeding"] = True
|
||||
self.handle.super_seeding(True)
|
||||
else:
|
||||
self.options["super_seeding"] = False
|
||||
|
||||
def set_stop_ratio(self, stop_ratio):
|
||||
self.options["stop_ratio"] = stop_ratio
|
||||
|
||||
|
@ -678,7 +686,6 @@ class Torrent(object):
|
|||
self.status = status
|
||||
|
||||
def _create_status_funcs(self):
|
||||
#if you add a key here->add it to core.py STATUS_KEYS too.
|
||||
self.status_funcs = {
|
||||
"active_time": lambda: self.status.active_time,
|
||||
"all_time_download": lambda: self.status.all_time_download,
|
||||
|
@ -741,13 +748,15 @@ class Torrent(object):
|
|||
"files": self.get_files,
|
||||
"is_seed": lambda: self.status.is_seeding,
|
||||
"peers": self.get_peers,
|
||||
"queue": self.handle.queue_position,
|
||||
"queue": lambda: self.status.queue_position,
|
||||
"ratio": self.get_ratio,
|
||||
"tracker_host": self.get_tracker_host,
|
||||
"completed_time": lambda: self.status.completed_time,
|
||||
"last_seen_complete": lambda: self.status.last_seen_complete,
|
||||
"name": self.get_name,
|
||||
"pieces": self._get_pieces_info,
|
||||
"seed_mode": lambda: self.status.seed_mode,
|
||||
"super_seeding": lambda: self.status.super_seeding,
|
||||
}
|
||||
|
||||
def get_name(self):
|
||||
|
|
|
@ -88,7 +88,9 @@ class TorrentState:
|
|||
magnet=None,
|
||||
time_added=-1,
|
||||
owner=None,
|
||||
shared=False):
|
||||
shared=False,
|
||||
super_seeding=False
|
||||
):
|
||||
self.torrent_id = torrent_id
|
||||
self.filename = filename
|
||||
self.trackers = trackers
|
||||
|
@ -116,6 +118,7 @@ class TorrentState:
|
|||
self.move_completed = move_completed
|
||||
self.move_completed_path = move_completed_path
|
||||
self.shared = shared
|
||||
self.super_seeding = super_seeding
|
||||
|
||||
|
||||
class TorrentManagerState:
|
||||
|
@ -351,6 +354,7 @@ class TorrentManager(component.Component):
|
|||
options["move_completed_path"] = state.move_completed_path
|
||||
options["add_paused"] = state.paused
|
||||
options["shared"] = state.shared
|
||||
options["super_seeding"] = state.super_seeding
|
||||
owner = state.owner
|
||||
|
||||
torrent_info = self.get_torrent_info_from_file(
|
||||
|
@ -440,8 +444,8 @@ class TorrentManager(component.Component):
|
|||
add_torrent_params["storage_mode"] = storage_mode
|
||||
|
||||
default_flags = (lt.add_torrent_params_flags_t.flag_paused |
|
||||
lt.add_torrent_params_flags_t.flag_auto_managed|
|
||||
lt.add_torrent_params_flags_t.flag_update_subscribe|
|
||||
lt.add_torrent_params_flags_t.flag_auto_managed |
|
||||
lt.add_torrent_params_flags_t.flag_update_subscribe |
|
||||
lt.add_torrent_params_flags_t.flag_apply_ip_filter)
|
||||
# Set flags: enable duplicate_is_error and disable auto_managed
|
||||
add_torrent_params["flags"] = ((default_flags
|
||||
|
@ -691,7 +695,8 @@ class TorrentManager(component.Component):
|
|||
torrent.magnet,
|
||||
torrent.time_added,
|
||||
torrent.owner,
|
||||
torrent.options["shared"]
|
||||
torrent.options["shared"],
|
||||
torrent.options["super_seeding"]
|
||||
)
|
||||
state.torrents.append(torrent_state)
|
||||
|
||||
|
|
Loading…
Reference in New Issue