def std_srt_to_text_line(url): """ Тотлько для субтитров. """ sets = dal.get_utf8_template() sets['name'] = url readed_lst, err = dal.efile2list(sets) purged_lst = list() if readed_lst: for at in readed_lst: at_copy = at.replace('\r','') at_copy = at_copy.replace('\n','') if at_copy: if not '-->' in at_copy: if not is_content_nums(at_copy): at_copy = at_copy.replace('<i>','') at_copy = at_copy.replace('</i>','') # Добавление purged_lst.append(at_copy) # Теперь нужно разить на предложения one_line = '@@@@'.join(purged_lst) # Filtration one_line = one_line.replace(']', '.').replace('[','') one_line = one_line.replace('♪', '') # TODO(zaqwes): rm links one_line = re.sub('\~.*?\~', ' ', one_line) one_line = re.sub('\<.*?\</.*?\>', ' ', one_line) one_line = '\n'.join(one_line.split('@@@@')) return one_line
def parser_target_for_spider(target_fname): """ Thinks: А что если файл пустой? TODO: Сделать кастомизацию преобразоватлелей в текст """ sets = dal.get_utf8_template() sets['name'] = target_fname list_lines, err = dal.efile2list(sets) if err[0]: rpt = err[1] yield None, 1, rpt return # Можно обрабатывать list_without_comments = map( lambda line: remove_forward_and_back_spaces(line.split('#')[0]), list_lines) # Удаление пустых строк result_job_list = [] map(lambda line: result_job_list.append(line) if line \ else None, list_without_comments) # В первой информационной строке должно быть имя узла if not is_node(result_job_list[0]): rpt = 'target_fname: '+target_fname+ \ '. Неверный формат файла - первое имя узла должно быть до адресов.'+ \ 'Либо файл с заданиями пуст.' code_err = 2 yield None, code_err, rpt return current_node = get_node_name(result_job_list[0]) i = 0 nodes = [] for at in result_job_list: if is_node(at): current_node = get_node_name(at) if current_node not in nodes: nodes.append(current_node) else: code_err = 2 yield None, code_err, 'Name node: ['+current_node+ \ ']\n'+"\tError: Node name need be unic." i = 0 else: i += 1 # Выделяем обработчик pos_first_settings_item = at.find('[') if pos_first_settings_item != -1: url = remove_forward_and_back_spaces( at[:pos_first_settings_item]) params = at[pos_first_settings_item:] params, code_err, rpt = _parse_target_params(params) if code_err != 0 and rpt: rpt = 'Name node: ['+current_node+']\nUrl: ['+url+']\n'+rpt yield (current_node, url, i, params), 0, rpt else: url = remove_forward_and_back_spaces(at) rpt = None yield (current_node, url, i, '{}'), 0, rpt