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 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