File size: 3,218 Bytes
b4bbaee e344c67 b4bbaee e344c67 b4bbaee e344c67 b4bbaee e344c67 2c92d66 e344c67 2c92d66 e344c67 b4bbaee e344c67 b4bbaee 2c92d66 169468d 2c92d66 e344c67 b4bbaee e344c67 b4bbaee |
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 52 53 54 55 56 57 58 |
import gradio as gr
import re
# Функция для анализа поста
def analyze_post(content_type, link_to_post, post_likes, post_date, description, comment_count, all_comments):
# Паттерн для извлечения никнейма, текста комментария и лайков
pattern = r"Фото профиля (\S+)\n(.+?)\n\d+ (?:ч|дн)\.(?:\"Нравится\": (\d+))?(?:Ответить)?"
matches = re.findall(pattern, all_comments)
# Обрабатываем результаты
usernames_output = "\n".join([match[0] for match in matches]) # Никнеймы (Output 1)
comments_output = "\n".join([match[1] for match in matches]) # Тексты комментариев (Output 2)
# Лайки на комментариях по порядку (Output 3)
likes_chronology_output = "\n".join([match[2] if match[2] else "0" for match in matches])
# Сумма всех лайков на комментариях (Output 4)
total_likes_sum = sum(int(match[2]) for match in matches if match[2])
# Сводная информация о посте
post_summary = (
f"Content Type: {content_type}\n"
f"Link to Post: {link_to_post}\n"
f"Post Information\n"
f"Likes: {post_likes}\n"
f"Post Date: {post_date}\n"
f"Description: {description}\n"
f"Total Comments (Expected): {comment_count}\n"
f"Extracted Comments: {len(matches)}\n"
f"Total Likes on Comments: {total_likes_sum}\n"
)
return post_summary, usernames_output, comments_output, likes_chronology_output, total_likes_sum
# Создаем интерфейс Gradio
iface = gr.Interface(
fn=analyze_post,
inputs=[
gr.Radio(["Photo", "Video"], label="Content Type"), # Выбор типа контента
gr.Textbox(label="Link to Post", placeholder="Введите ссылку на пост"), # Ссылка на пост
gr.Number(label="Likes"), # Лайки на посте
gr.Textbox(label="Post Date", placeholder="Введите дату публикации"), # Дата публикации
gr.Textbox(label="Description", placeholder="Введите описание поста"), # Описание поста
gr.Number(label="Total Comment Count"), # Общее количество комментариев
gr.Textbox(label="All Comments", placeholder="Введите комментарии в формате, как указано в примере") # Все комментарии
],
outputs=[
gr.Textbox(label="Post Summary"), # Сводная информация о посте
gr.Textbox(label="Usernames (Output 1)"), # Никнеймы
gr.Textbox(label="Comments (Output 2)"), # Комментарии
gr.Textbox(label="Likes Chronology (Output 3)"), # Лайки по порядку
gr.Textbox(label="Total Likes on Comments (Output 4)") # Сумма лайков на комментариях
],
title="Instagram Comment Analyzer",
description="Analyze comments for a specific Instagram post."
)
iface.launch() |