def try_to_extend_link(link): parser = find_parser(link) if parser: x = parse_pattern(link) if x: links = parser(x[0]) import lixian_filter_expr return lixian_filter_expr.filter_expr(links, x[1]) else: return parser(link)
def sub_id_processor(base, x): x = lixian_encoding.from_native(x) m = re.match(r'^(\d+)/(.+)$', x) if not m: return task_id, sub_id = m.groups() task = base.find_task_by_id(task_id) if not task: return assert task['type'] == 'bt', 'task %s is not a bt task' % lixian_encoding.to_native(task['name']) files = base.get_files(task) import lixian_filter_expr files = lixian_filter_expr.filter_expr(files, sub_id) subs = [x for x in files] return SubTaskQuery(base, task, subs)