File size: 2,515 Bytes
6e3f65c
674e2be
21910df
674e2be
 
 
 
 
 
44e06ad
 
 
 
 
 
 
 
 
 
 
 
 
 
21910df
674e2be
44e06ad
674e2be
 
 
 
44e06ad
674e2be
 
44e06ad
 
 
21910df
674e2be
6e3f65c
895ca00
6e3f65c
895ca00
674e2be
 
 
 
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
50
51
import gradio as gr
import re

# Функция для обработки входного текста
def process_text(input_text, comment_count):
    # Печать входных данных для отладки
    print(f"Входные данные: {input_text}")
    print(f"Ожидаемое количество комментариев: {comment_count}")

    # Шаблон для разделения комментариев по ключевым словам
    comment_blocks = re.split(r'Ответить|Действия с комментарием|Скрыть ответы|Показать перевод', input_text)
    
    # Паттерн для извлечения данных из каждого блока
    pattern = r"([a-zA-Z0-9_@]+)\s*(.*?)(?:\sНравится:\s*(\d+))?\s*$"
    
    results = []
    for block in comment_blocks:
        match = re.search(pattern, block.strip())
        if match:
            username = match.group(1)
            text = match.group(2).strip()
            likes = int(match.group(3)) if match.group(3) else 0
            results.append({"Пользователь": username, "Текст": text, "Лайков": likes})
    
    # Проверка количества комментариев
    actual_comment_count = len(results)
    if actual_comment_count != int(comment_count):
        return (f"Предупреждение: найдено {actual_comment_count} комментариев, "
                f"хотя указано {comment_count}.\n"
                "Пожалуйста, проверьте ввод.")
    
    # Формируем вывод
    output = []
    for i, result in enumerate(results, 1):
        username, text, likes = result['Пользователь'], result['Текст'], result['Лайков']
        output.append(f'{i}. Пользователь: "{username}", Текст: "{text}", Лайков: {likes}')

    return "\n".join(output)

# Настройка Gradio интерфейса
iface = gr.Interface(
    fn=process_text,
    inputs=[
        gr.Textbox(lines=10, placeholder="Введите текст сюда..."),       # Поле для текста комментариев
        gr.Number(label="Количество комментариев по данным Instagram")  # Поле для количества комментариев
    ],
    outputs=gr.Textbox(lines=10, placeholder="Результат...")
)

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