Esempio n. 1
0
def find_normal_tasks_to_download(client, links):
    links = lixian_tasks_extended.extend_links(links)
    all_tasks = client.read_all_tasks()
    found, missing, all = search_in_tasks(all_tasks, links)
    to_add = set(missing)
    if to_add:
        print 'Adding below tasks:'
        for link in missing:
            print link
        links_to_add = filter(is_url, to_add)
        if links_to_add:
            client.add_batch_tasks(map(native_to_utf_8, links_to_add))
        for link in to_add:
            if is_url(link):
                # add_batch_tasks doesn't work for bt task, add bt task one by one...
                if link.startswith('bt://') or link.startswith('magnet:'):
                    client.add_task(link)
            elif is_local_bt(link):
                with open(link, 'rb') as stream:
                    torrent = stream.read()
                client.add_torrent_task_by_content(torrent,
                                                   os.path.basename(link))
            else:
                raise NotImplementedError('Unsupported: ' + link)
        all_tasks = client.read_all_tasks()
    try:
        return return_my_tasks(all_tasks, all)
    except NotImplementedError:
        import time
        time.sleep(5)
        return return_my_tasks(client.read_all_tasks(), all)
Esempio n. 2
0
def find_normal_tasks_to_download(client, links):
    links = lixian_tasks_extended.extend_links(links)
    all_tasks = client.read_all_tasks()
    found, missing, all = search_in_tasks(all_tasks, links)
    to_add = set(missing)
    if to_add:
        print 'Adding below tasks:'
        for link in missing:
            print link
        links_to_add = filter(is_url, to_add)
        if links_to_add:
            client.add_batch_tasks(map(native_to_utf_8, links_to_add))
        for link in to_add:
            if is_url(link):
                # add_batch_tasks doesn't work for bt task, add bt task one by one...
                if link.startswith('bt://') or link.startswith('magnet:'):
                    client.add_task(link)
            elif is_local_bt(link):
                with open(link, 'rb') as stream:
                    torrent = stream.read()
                client.add_torrent_task_by_content(torrent, os.path.basename(link))
            else:
                raise NotImplementedError('Unsupported: '+link)
        all_tasks = client.read_all_tasks()
    try:
        return return_my_tasks(all_tasks, all)
    except NotImplementedError:
        import time
        time.sleep(5)
        return return_my_tasks(client.read_all_tasks(), all)
def extend_links(args):
    '''
    usage: lx extend-links http://kuai.xunlei.com/d/... http://www.verycd.com/topics/...

    parse and print links from pages

    lx extend-links urls...
    lx extend-links --name urls...
    '''
    args = parse_command_line(args, [], ['name'])
    import lixian_tasks_extended
    if args.name:
        for x in lixian_tasks_extended.extend_links_name(args):
            print x.encode(default_encoding)
    else:
        for x in lixian_tasks_extended.extend_links(args):
            print x
Esempio n. 4
0
def extend_links(args):
	'''
	usage: lx extend-links http://kuai.xunlei.com/d/... http://www.verycd.com/topics/...
	
	parse and print links from pages
	
	lx extend-links urls...
	lx extend-links --name urls...
	'''
	args = parse_command_line(args, [], ['name'])
	import lixian_tasks_extended
	if args.name:
		for x in lixian_tasks_extended.extend_links_name(args):
			print x.encode(default_encoding)
	else:
		for x in lixian_tasks_extended.extend_links(args):
			print x