[Request] Delete torrent and data on queue
Posted: Mon Jul 25, 2011 2:36 pm
How to set deluge to delete torrent AND DATA after it is queued after seeding or simply after some time or ratio?
Support Forum for the Deluge BitTorrent Client
https://forum.deluge-torrent.org/
This is possible using a plugin or client script, but without a coherent and understandable description of what you want specifically, all I can do is direct you here: http://dev.deluge-torrent.org/wiki/Developmentevevlo wrote:How to set deluge to delete torrent AND DATA after it is queued after seeding or simply after some time or ratio?
Code: Select all
from deluge.log import LOG as log
from deluge.plugins.pluginbase import CorePluginBase
import deluge.component as component
import deluge.configmanager
from deluge.core.rpcserver import export
DEFAULT_PREFS = {'trackers': {}
}
class Core(CorePluginBase):
def enforceTrackerMaximum(self, tracker, maximum):
tracker = str(tracker)
torrents = component.get("Core").get_torrents_status({"state": ["Downloading","Seeding"], "tracker_host": tracker}, ["seeding_time", "total_uploaded"])
exempt = []
nonexempt = []
exdur = 86400
for id in torrents:
if torrents[id]["seeding_time"] > exdur:
nonexempt.append([torrents[id]["total_uploaded"]/torrents[id]["seeding_time"], id])
else:
exempt.append([torrents[id]["seeding_time"], id])
exempt.sort()
nonexempt.sort()
over = len(torrents) - maximum
nover = over - len(exempt)
if nover > 0:
rover = over - nover
else:
rover = over
if rover > 0:
for torrent in nonexempt[:rover]:
component.get("Core").remove_torrent(torrent[1], False)
if nover > 0:
pause_list = []
for torrent in exempt[-nover:]:
pause_list.append(torrent[1])
component.get("Core").pause_torrent(pause_list)
def torrent_event(self, torrent_id):
tracker = component.get("Core").get_torrent_status(torrent_id, ["tracker_host"])["tracker_host"]
if tracker in self.config['trackers']:
self.enforceTrackerMaximum(tracker, self.config['trackers'][tracker])
def multitorrent_event(self):
for tracker in self.config['trackers']:
self.enforceTrackerMaximum(tracker, self.config['trackers'][tracker])
def enable(self):
self.config = deluge.configmanager.ConfigManager("trackermaximums.conf", DEFAULT_PREFS)
component.get("EventManager").register_event_handler("TorrentAddedEvent", self.torrent_event)
component.get("EventManager").register_event_handler("TorrentResumedEvent", self.torrent_event)
component.get("EventManager").register_event_handler("SessionResumedEvent", self.multitorrent_event)
for tracker in self.config['trackers']:
self.enforceTrackerMaximum(tracker, self.config['trackers'][tracker])
def disable(self):
component.get("EventManager").deregister_event_handler("TorrentAddedEvent", self.torrent_event)
component.get("EventManager").deregister_event_handler("TorrentResumedEvent", self.torrent_event)
component.get("EventManager").deregister_event_handler("SessionResumedEvent", self.multitorrent_event)
def update(self):
pass
@export
def set_config(self, config):
"sets the config dictionary"
for key in config.keys():
self.config[key] = config[key]
self.config.save()
@export
def get_config(self):
"returns the config dictionary"
return self.config.config
To use the plugin code that CSB put up you would need to create your own plugin, which is not difficult: http://dev.deluge-torrent.org/wiki/Deve ... 1.3/Plugindeity wrote:How do you install a script plugin such as this? i only see the option to install a .egg