Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _set_bandwidth_unit(settings, name, value):
convert.bandwidth.unit = value
unit_short = convert.bandwidth.unit
for column in _BANDWIDTH_COLUMNS:
column.set_unit(unit_short)
column.clearcache()
srvapi.torrent.clearcache()
srvapi.poll()
localcfg.on_change(_set_bandwidth_unit, name='unit.bandwidth')
async def display_details(self, torrent_id):
from ...views.details import SECTIONS
needed_keys = set(('name',))
for _section in SECTIONS:
for _item in _section['items']:
needed_keys.update(_item.needed_keys)
response = await self.make_request(
objects.srvapi.torrent.torrents((torrent_id,), keys=needed_keys),
quiet=True)
if not response.torrents:
raise CmdError()
else:
torrent = response.torrents[0]
if TERMSIZE.columns is None:
self._machine_readable(torrent)
else:
self._human_readable(torrent)
async def run(self, ACTION, TORRENT_FILTER, URL):
urls = tuple(URL)
try:
tfilter = self.select_torrents(TORRENT_FILTER,
allow_no_filter=False,
discover_torrent=True)
except ValueError as e:
raise CmdError(e)
if any(ACTION == action for action in self._ADD_ACTIONS):
request = objects.srvapi.torrent.tracker_add(tfilter, urls)
log.debug('Adding trackers to %s torrents: %s', tfilter, ', '.join(urls))
elif any(ACTION == action for action in self._REMOVE_ACTIONS):
request = objects.srvapi.torrent.tracker_remove(tfilter, urls, partial_match=True)
log.debug('Removing trackers from %s torrents: %s', tfilter, ', '.join(urls))
else:
raise CmdError('Invalid ACTION: %r' % (ACTION,))
response = await self.make_request(request, polling_frenzy=True)
if not response.success:
raise CmdError()
async def do_remove(tfilter=tfilter, delete_files=delete_files):
response = await self.make_request(
objects.srvapi.torrent.remove(tfilter, delete=delete_files),
polling_frenzy=True)
if not response.success:
raise CmdError()
objects.srvapi.torrent.torrents(tfilter, keys=('id',)),
quiet=True)
if not response.success:
raise CmdError()
elif (unique or renaming_torrent) and len(response.torrents) > 1:
# When renaming a torrent or --unique is given, tfilter must
# match exactly one torrent. If it matches zero torrents,
# make_request() below with produce the appropriate error
# message.
raise CmdError('%s matches more than one torrent' % tfilter)
else:
success = True
for torrent in response.torrents:
tid = torrent['id']
response = await self.make_request(
objects.srvapi.torrent.rename(tid, path=PATH, new_name=NEW),
polling_frenzy=True)
if not response.success:
success = False
if not success:
raise CmdError()
async def _set_individual_limits(self, TORRENT_FILTER, directions, limit, quiet=False, adjust=False):
try:
tfilter = self.select_torrents(TORRENT_FILTER,
allow_no_filter=False,
discover_torrent=True)
except ValueError as e:
raise CmdError(e)
log.debug('Setting %sload rate limit for %s torrents: %r',
'+'.join(directions), tfilter, limit)
success = True
for d in directions:
method = getattr(objects.srvapi.torrent,
('adjust' if adjust else 'set') + '_limit_rate_' + d)
response = await self.make_request(method(tfilter, limit),
polling_frenzy=True, quiet=quiet)
success = success and response.success
if not success:
raise CmdError()
async def run(self, TORRENT_FILTER):
try:
tfilter = self.select_torrents(TORRENT_FILTER,
allow_no_filter=False,
discover_torrent=True)
except ValueError as e:
raise CmdError(e)
else:
response = await self.make_request(
objects.srvapi.torrent.announce(tfilter),
polling_frenzy=False)
if not response.success:
raise CmdError()
async def run(self, ACTION, TORRENT_FILTER, URL):
urls = tuple(URL)
try:
tfilter = self.select_torrents(TORRENT_FILTER,
allow_no_filter=False,
discover_torrent=True)
except ValueError as e:
raise CmdError(e)
if any(ACTION == action for action in self._ADD_ACTIONS):
request = objects.srvapi.torrent.tracker_add(tfilter, urls)
log.debug('Adding trackers to %s torrents: %s', tfilter, ', '.join(urls))
elif any(ACTION == action for action in self._REMOVE_ACTIONS):
request = objects.srvapi.torrent.tracker_remove(tfilter, urls, partial_match=True)
log.debug('Removing trackers from %s torrents: %s', tfilter, ', '.join(urls))
else:
raise CmdError('Invalid ACTION: %r' % (ACTION,))
response = await self.make_request(request, polling_frenzy=True)
if not response.success:
raise CmdError()