def get_torrent(args): ''' usage: lx get-torrent [info-hash|task-id]... ''' from lixian_cli import parse_login_command_line args = parse_login_command_line(args) client = XunleiClient(args.username, args.password, args.cookies) for id in args: id = id.lower() import re if re.match(r'[a-fA-F0-9]{40}$', id): torrent = client.get_torrent_file_by_info_hash(id) elif re.match(r'#?\d+$', id): tasks = client.read_all_tasks() from lixian_tasks import find_task_by_id task = find_task_by_id(tasks, id) assert task, id + ' not found' id = task['bt_hash'] id = id.lower() torrent = client.get_torrent_file_by_info_hash(id) else: raise NotImplementedError() path = id + '.torrent' print path with open(path, 'wb') as output: output.write(torrent)
def export_aria2(args): ''' usage: lx export-aria2 [id|name]... ''' from lixian_cli import parse_login_command_line args = parse_login_command_line(args) print export_aria2_conf(args)
def export_aria2(args): import lixian_cli args = lixian_cli.parse_login_command_line(args) from lixian import XunleiClient client = XunleiClient(args.username, args.password, args.cookies) import lixian_tasks tasks = lixian_tasks.search_tasks(client, args, status=(args.completed and 'completed' or 'all')) files = [] for task in tasks: if task['type'] == 'bt': subs, skipped, single_file = lixian_tasks.expand_bt_sub_tasks(client, task) if not subs: continue if single_file: files.append((subs[0]['xunlei_url'], subs[0]['name'], None)) else: for f in subs: import os.path files.append((f['xunlei_url'], f['name'], task['name'])) else: files.append((task['xunlei_url'], task['name'], None)) for url, name, dir in files: print url from lixian_encoding import default_encoding print ' out=' + name.encode(default_encoding) if dir: print ' dir=' + dir.encode(default_encoding) print ' header=Cookie: gdriveid=' + client.get_gdriveid()
def download_aria2(args): ''' usage: lx download-aria2 -j 5 [id|name]... ''' from lixian_cli import parse_login_command_line args = parse_login_command_line(args, keys=['j'], alias={'max-concurrent-downloads':'j'}) j = get_config('aria2-j', args.j) or '5' aria2_conf = export_aria2_conf(args) import platform if platform.system() == 'Windows': download_aria2_temp(aria2_conf, j) else: download_aria2_stdin(aria2_conf, j)
def download_aria2(args): """ usage: lx download-aria2 -j 5 [id|name]... """ from lixian_cli import parse_login_command_line args = parse_login_command_line(args, keys=["j"], alias={"max-concurrent-downloads": "j"}) j = get_config("aria2-j", args.j) or "5" aria2_conf = export_aria2_conf(args) import platform if platform.system() == "Windows": download_aria2_temp(aria2_conf, j) else: download_aria2_stdin(aria2_conf, j)