boompack commited on
Commit
cce8ab3
·
verified ·
1 Parent(s): 76cf8fb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -9
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
- username_match = re.search(r"Фото профиля ([^\n]+)", comment_text)
33
- if not username_match:
34
- return None, None, 0, 0
 
 
 
 
35
 
36
- username = username_match.group(1).strip()
 
 
 
 
 
 
 
37
 
38
  # Извлекаем текст комментария
39
  lines = comment_text.split('\n')
40
  comment = ""
 
 
 
41
  for i, line in enumerate(lines):
42
- if username in line and i + 1 < len(lines):
43
- comment = lines[i + 1].strip()
44
- comment = re.sub(r'\d+\s*(?:ч\.|нед\.)\s*$', '', comment)
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)