parmuza / app.py
boompack's picture
Update app.py
674e2be verified
raw
history blame
2.39 kB
import gradio as gr
import re
# Функция для обработки входного текста
def process_text(input_text, comment_count):
# Печать входных данных для отладки
print(f"Входные данные: {input_text}")
print(f"Ожидаемое количество комментариев: {comment_count}")
# Регулярное выражение для извлечения данных
pattern = r"([a-zA-Z0-9_@]+(?:[a-zA-Z0-9_]+)?)\s*(.*?)\s*(?:Нравится:\s*(\d+))"
# Проверка пустого ввода
if not input_text.strip():
return "Пожалуйста, введите текст."
# Поиск всех совпадений в тексте
matches = re.findall(pattern, input_text)
# Печать найденных совпадений для отладки
print(f"Найденные совпадения: {matches}")
# Проверка наличия совпадений
if not matches:
return "Совпадения не найдены. Пожалуйста, проверьте ввод."
# Проверка количества комментариев
actual_comment_count = len(matches)
if actual_comment_count != int(comment_count):
return (f"Предупреждение: найдено {actual_comment_count} комментариев, "
f"хотя указано {comment_count}.\n"
"Пожалуйста, проверьте ввод.")
# Формируем вывод
output = []
for i, match in enumerate(matches, 1):
username, text, likes = match
output.append(f'{i}. Пользователь: "{username}", Текст: "{text.strip()}", Лайков: {likes or 0}')
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()