Update app.py
Browse files
app.py
CHANGED
@@ -28,22 +28,45 @@ def extract_comment_data(comment_text: str) -> Tuple[Optional[str], Optional[str
|
|
28 |
if 'отметок "Нравится"' in comment_text:
|
29 |
return None, None, 0, 0
|
30 |
|
31 |
-
# Извлекаем имя пользователя
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
35 |
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
# Извлекаем текст комментария
|
39 |
lines = comment_text.split('\n')
|
40 |
comment = ""
|
|
|
|
|
|
|
41 |
for i, line in enumerate(lines):
|
42 |
-
if
|
43 |
-
|
44 |
-
|
45 |
-
comment = re.sub(r'"Нравится":\s*\d+\s*Ответить\s*$', '', comment)
|
46 |
break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
# Извлекаем лайки
|
49 |
likes_match = re.search(r'"Нравится":\s*(\d+)', comment_text)
|
|
|
28 |
if 'отметок "Нравится"' in comment_text:
|
29 |
return None, None, 0, 0
|
30 |
|
31 |
+
# Извлекаем имя пользователя (поддержка обоих форматов)
|
32 |
+
username = None
|
33 |
+
|
34 |
+
# Формат 1: "Фото профиля username\nusername\n"
|
35 |
+
if "Фото профиля" in comment_text:
|
36 |
+
username_match = re.search(r"Фото профиля ([^\n]+)", comment_text)
|
37 |
+
if username_match:
|
38 |
+
username = username_match.group(1).strip()
|
39 |
|
40 |
+
# Формат 2: Прямое указание имени пользователя
|
41 |
+
else:
|
42 |
+
lines = comment_text.split('\n')
|
43 |
+
if lines and lines[0].strip():
|
44 |
+
username = lines[0].strip()
|
45 |
+
|
46 |
+
if not username:
|
47 |
+
return None, None, 0, 0
|
48 |
|
49 |
# Извлекаем текст комментария
|
50 |
lines = comment_text.split('\n')
|
51 |
comment = ""
|
52 |
+
|
53 |
+
# Ищем комментарий после времени
|
54 |
+
time_pattern = r'\d+\s*(?:ч\.|нед\.)'
|
55 |
for i, line in enumerate(lines):
|
56 |
+
if re.search(time_pattern, line):
|
57 |
+
if i + 1 < len(lines):
|
58 |
+
comment = lines[i + 1].strip()
|
|
|
59 |
break
|
60 |
+
elif username in line and i + 2 < len(lines):
|
61 |
+
# Проверяем следующую строку после юзернейма
|
62 |
+
next_line = lines[i + 1].strip()
|
63 |
+
if not re.search(time_pattern, next_line):
|
64 |
+
comment = next_line
|
65 |
+
break
|
66 |
+
|
67 |
+
# Очищаем комментарий
|
68 |
+
comment = re.sub(r'\d+\s*(?:ч\.|нед\.)\s*$', '', comment)
|
69 |
+
comment = re.sub(r'"Нравится":\s*\d+\s*Ответить\s*$', '', comment)
|
70 |
|
71 |
# Извлекаем лайки
|
72 |
likes_match = re.search(r'"Нравится":\s*(\d+)', comment_text)
|