def __init__(self, name, conf, remove_torrents=True): # Logger self._logger = logger.Logger.register(__name__) # Save task name self._name = name # Replace environment variables first pattern = re.compile(r'\$\(([^\)]+)\)') replace_keys = ['host', 'username', 'password'] for key in replace_keys: if key in conf: env = pattern.match(str(conf[key])) if env is not None and env.group(1) in os.environ: conf[key] = os.environ[env.group(1)] # Read configurations self._client_name = conf['client'] self._client = None self._host = conf['host'] self._username = conf['username'] if 'username' in conf else '' self._password = conf['password'] if 'password' in conf else '' self._enabled_remove = remove_torrents self._delete_data = conf[ 'delete_data'] if 'delete_data' in conf else False self._strategies = conf['strategies'] if 'strategies' in conf else [] # Torrents self._torrents = set() self._remove = set() self._soft_remove = set() # Allow removing specified torrents if 'force_delete' in conf: for hash_ in conf['force_delete']: torrent_obj = Torrent() torrent_obj.hash = hash_ torrent_obj.name = hash_ self._remove.add(torrent_obj)
def __init__(self, name, conf, remove_torrents=True): # Logger self._logger = logger.Logger.register(__name__) # Save task name self._name = name # Replace environment variables first pattern = re.compile(r'\$\(([^\)]+)\)') replace_keys = ['host', 'username', 'password'] for key in replace_keys: if key in conf: env = pattern.match(conf[key]) if env is not None and env.group(1) in os.environ: conf[key] = os.environ[env.group(1)] # Read configurations self._client_name = conf['client'] self._client = None self._host = conf['host'] self._username = conf['username'] if 'username' in conf else '' self._password = conf['password'] if 'password' in conf else '' self._enabled_remove = remove_torrents self._delete_data = conf[ 'delete_data'] if 'delete_data' in conf else False self._strategies = conf['strategies'] if 'strategies' in conf else [] # Torrents self._torrents = set() self._remove = set() # Allow removing specified torrents if 'force_delete' in conf: for hash in conf['force_delete']: self._remove.add( Torrent( hash, hash, '(No Category)', [], TorrentStatus.Unknown, False, 0, 0, 0, sys.maxsize, # No create time -1 # No seeding time ))
def test_data(): # Load input data input_torrents = [] with open(os.path.join(os.path.realpath(os.path.dirname(__file__)), 'data.json'), encoding='utf-8') as f: data = json.load(f) for torrent in data: input_torrents.append( Torrent(torrent['hash'], torrent['name'], torrent['category'], torrent['tracker'], TorrentStatus(torrent['state']), torrent['size'], torrent['ratio'], torrent['uploaded'], torrent['added_on'], torrent['seeding_time'])) return input_torrents
def test_data(): # Load input data input_torrents = [] with open_(os.path.join(os.path.realpath(os.path.dirname(__file__)), 'data.json'), encoding='utf-8') as f: data = json.load(f) for torrent in data: torrent_obj = Torrent() torrent_obj.hash = torrent['hash'] torrent_obj.name = torrent['name'] torrent_obj.category = [torrent['category'] ] if len(torrent['category']) > 0 else [] torrent_obj.tracker = torrent['tracker'] torrent_obj.status = TorrentStatus[torrent['state']] torrent_obj.stalled = torrent['is_stalled'] torrent_obj.size = torrent['size'] torrent_obj.ratio = torrent['ratio'] torrent_obj.uploaded = torrent['uploaded'] torrent_obj.create_time = torrent['added_on'] torrent_obj.seeding_time = torrent['seeding_time'] torrent_obj.upload_speed = torrent['upspeed'] torrent_obj.average_upload_speed = torrent['up_speed_avg'] torrent_obj.downloaded = torrent['downloaded'] torrent_obj.download_speed = torrent['dlspeed'] torrent_obj.average_download_speed = torrent['dl_speed_avg'] torrent_obj.last_activity = torrent['last_activity'] torrent_obj.seeder = torrent['num_complete'] torrent_obj.connected_seeder = torrent['num_seeds'] torrent_obj.leecher = torrent['num_incomplete'] torrent_obj.connected_leecher = torrent['num_leechs'] torrent_obj.progress = torrent['progress'] input_torrents.append(torrent_obj) return input_torrents