boompack commited on
Commit
09539e9
·
verified ·
1 Parent(s): 21910df

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -35
app.py CHANGED
@@ -1,41 +1,29 @@
1
- import gradio as gr
2
  import re
3
 
4
- # Функция для обработки входного текста
5
- def process_text(input_text):
6
- # Печать входных данных для отладки
7
- print(f"Входные данные: {input_text}")
8
-
9
- # Регулярное выражение для извлечения данных
10
- pattern = r"([a-zA-Z0-9_@]+)([^\n]*?)(?=\d{1,2}\sнед\.|\d{1,2}\sдн\.|$)" # Ищем текст до метки времени (нед. или дн.)
11
 
12
- # Поиск всех совпадений в тексте
13
- matches = re.findall(pattern, input_text)
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- # Печать найденных совпадений для отладки
16
- print(f"Найденные совпадения: {matches}")
17
-
18
- # Проверка наличия совпадений
19
- if not matches:
20
- return "Совпадения не найдены. Пожалуйста, проверьте ввод."
21
-
22
- # Формируем вывод
23
- output = []
24
- for i, match in enumerate(matches, 1):
25
- username = match[0].strip()
26
- text = re.sub(r"Нравится: \d+|Ответить|Показать перевод|Действия с комментарием|Нравится|Скрыть ответы", "", match[1]).strip() # Удаляем лишние фразы
27
- likes = re.search(r"Нравится: (\d+)", match[1])
28
- like_count = likes.group(1) if likes else "0" # Если лайков нет, ставим 0
29
- output.append(f'{i}. Пользователь: "{username}", Текст: "{text}", Лайков: {like_count}')
30
-
31
- return "\n".join(output)
32
 
33
- # Настройка Gradio интерфейса
34
- iface = gr.Interface(
35
- fn=process_text,
36
- inputs=gr.Textbox(lines=10, placeholder="Введите текст сюда..."),
37
- outputs=gr.Textbox(lines=10, placeholder="Результат...")
38
- )
39
 
40
- # Запуск интерфейса
41
- iface.launch()
 
 
 
 
1
  import re
2
 
3
+ def parse_comments(raw_text):
4
+ # Разбиваем текст на отдельные комментарии по слову "Ответить"
5
+ comment_blocks = raw_text.split("Ответить")
 
 
 
 
6
 
7
+ results = []
8
+ for block in comment_blocks:
9
+ # Шаблон для извлечения ника, текста и количества лайков
10
+ user_match = re.search(r'([\w\d@]+)(.*?)(\d+)?\sнед.', block)
11
+ text_match = re.search(r'(.*?)(?=Нравится|Показать перевод|Скрыть ответы)', block)
12
+ likes_match = re.search(r'Нравится:\s*(\d+)', block)
13
+
14
+ if user_match and text_match:
15
+ user = user_match.group(1)
16
+ text = text_match.group(1).strip()
17
+ likes = int(likes_match.group(1)) if likes_match else 0
18
+
19
+ results.append({"Пользователь": user, "Текст": text, "Лайков": likes})
20
 
21
+ return results
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
+ # Входные данные
24
+ raw_text = """alormusicgroupKeep going‼️‼️1 нед.Нравится: 1ОтветитьПоказать переводДействия с комментариемНравитсяСкрыть ответыjfk_4president@alormusicgroup Big facts 🫡🫡🦾1 нед.ОтветитьПоказать переводДействия с комментариемНравится..."""
 
 
 
 
25
 
26
+ # Вывод
27
+ parsed_comments = parse_comments(raw_text)
28
+ for comment in parsed_comments:
29
+ print(comment)