You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

96 lines
2.2 KiB

from qbittorrent.base import Base
from qbittorrent.file import File
from qbittorrent.helpers import try_convert
class Torrent(Base):
properties = {
'num_seeds': {
'key': 'seeds',
'parse': lambda value: try_convert(value, int)
},
'num_leechs': {
'key': 'leechs',
'parse': lambda value: try_convert(value, int)
},
'ratio': {
'parse': lambda value: try_convert(value, float)
}
}
def __init__(self, url, session, client=None):
super(Torrent, self).__init__(url, session, client)
self.hash = None
self.name = None
self.state = None
self.ratio = None
self.progress = None
self.priority = None
self.seeds = None
self.leechs = None
# General properties
self.comment = None
self.save_path = None
self.eta = None
self.size = None
self.dlspeed = None
self.upspeed = None
self.nb_connections = None
self.share_ratio = None
self.piece_size = None
self.total_wasted = None
self.total_downloaded = None
self.total_uploaded = None
self.creation_date = None
self.time_elapsed = None
self.up_limit = None
self.dl_limit = None
#
# Commands
#
def pause(self):
self._post('command/pause', data={'hash': self.hash})
def resume(self):
self._post('command/resume', data={'hash': self.hash})
def remove(self):
self._post('command/delete', data={'hashes': self.hash})
def delete(self):
self._post('command/deletePerm', data={'hashes': self.hash})
def recheck(self):
self._post('command/recheck', data={'hash': self.hash})
#
# Fetch details
#
def get_files(self):
r = self._get('json/propertiesFiles/%s' % self.hash)
return [File.parse(self._client, x) for x in r]
def get_trackers(self):
pass
#
# Update torrent details
#
def update_general(self):
r = self._get('json/propertiesGeneral/%s' % self.hash)
if r:
self._fill(r)
return True
return False