import os import urllib3 import shutil from config import auth_cfg def convert_bytes(num): step_unit = 1000.0 for x in ['bytes', 'KB', 'MB', 'GB', 'TB']: if num < step_unit: return "%3.1f %s" % (num, x) num /= step_unit def auth(user=None): if not user: return False credentials = zip([user['id'], user['username'], user['first_name'], user['last_name']], [auth_cfg['id'], auth_cfg['username'], auth_cfg['first_name'], auth_cfg['last_name']]) pairs_check = [True if pair[0] == pair[1] else None for pair in credentials] if all(pairs_check): return True return False def is_path_writable(path): return os.access(path, os.W_OK) def download(url=None, path=None): http = urllib3.PoolManager() with http.request('GET', url, preload_content=False) as r, open(path, 'wb') as out_file: shutil.copyfileobj(r, out_file) def check_magnet_link(link=None): if link is None: return import re magnet_pattern = re.compile('magnet:\?xt=urn:btih:[a-zA-Z0-9]{32,40}.+') if re.match(magnet_pattern, link): return True return None