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 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 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 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)
Example #7
0
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)
Example #8
0
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)