File size: 2,407 Bytes
21910df
6e3f65c
21910df
09539e9
6e3f65c
09539e9
21910df
09539e9
 
6e3f65c
 
 
 
 
09539e9
 
 
 
 
 
 
6e3f65c
df63d2c
 
21910df
09539e9
21910df
895ca00
 
 
 
 
 
 
 
21910df
895ca00
 
 
6e3f65c
895ca00
6e3f65c
895ca00
 
6e3f65c
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import re
import gradio as gr

def parse_comments(raw_text):
    # Разбиваем текст на отдельные комментарии по "Ответить", что указывает на конец каждого блока комментария
    comment_blocks = raw_text.split("Ответить")
    
    results = []
    for block in comment_blocks:
        # Находим никнейм пользователя, начиная с начала строки до первого не-буквенного символа или цифры
        user_match = re.search(r'^([a-zA-Z0-9_]+)', block.strip())
        # Находим текст комментария, который начинается после никнейма и перед временем ("1 нед." или "1 дн.")
        text_match = re.search(r'@\w+\s+(.+?)(?:\d+\s(?:нед|дн)\.)', block)
        # Находим количество лайков, если оно указано
        likes_match = re.search(r'Нравится:\s*(\d+)', block)
        
        if user_match and text_match:
            user = user_match.group(1)
            text = text_match.group(1).strip()
            likes = int(likes_match.group(1)) if likes_match else 0
            
            # Добавляем результат в список только если текст не пустой
            if text:
                results.append({"Пользователь": user, "Текст": text, "Лайков": likes})
    
    return results

def format_output(parsed_comments):
    # Форматируем вывод в текстовом формате
    formatted_output = ""
    for comment in parsed_comments:
        formatted_output += f"Пользователь: {comment['Пользователь']}\n"
        formatted_output += f"Текст: {comment['Текст']}\n"
        formatted_output += f"Лайков: {comment['Лайков']}\n\n"
    return formatted_output

def process_text(raw_text):
    parsed_comments = parse_comments(raw_text)
    return format_output(parsed_comments)

# Настройка Gradio интерфейса
iface = gr.Interface(
    fn=process_text,
    inputs=gr.Textbox(lines=10, placeholder="Введите текст сюда..."),
    outputs=gr.Textbox(lines=10, placeholder="Результат...")
)

# Запуск интерфейса
iface.launch()