Dink0 commited on
Commit
e975c8a
·
verified ·
1 Parent(s): 7308702

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -12
app.py CHANGED
@@ -312,16 +312,60 @@ def process_vk_link(link: str) -> tuple[str, int]:
312
 
313
  result = f"1. [{title}]({link}) — {human_format_views(views)}" # Изменено на нумерованный список
314
  return result, views
315
-
316
- # ... (остальной код остаётся без изменений до формирования Markdown)
317
-
318
- # В функции main, где формируется итоговый Markdown:
 
 
 
 
 
 
319
  def main():
320
- # ... (остальной код остаётся без изменений до формирования Markdown)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
 
322
- md_lines = []
323
 
324
- # --- Telegram ---
325
  md_lines.append("## Telegram")
326
  md_lines.append(f"**Суммарный охват постов — {human_format_views(tg_total_views)} просмотров**")
327
  if tg_results:
@@ -329,9 +373,8 @@ def main():
329
  md_lines.append(f"{i}. {r_line[3:]}") # Убираем "1. " из строки и добавляем новый номер
330
  else:
331
  md_lines.append("_Нет ссылок на Telegram_")
332
- md_lines.append("")
333
-
334
- # --- ВКонтакте ---
335
  md_lines.append("## ВКонтакте")
336
  md_lines.append(f"**Суммарный охват постов — {human_format_views(vk_total_views)} просмотров**")
337
  if vk_results:
@@ -370,8 +413,6 @@ def main():
370
  """
371
  components.html(copy_button_html, height=80)
372
 
373
- # ... (остальной код остаётся без изменений)
374
-
375
  # Запуск приложения
376
  if __name__ == "__main__":
377
  main()
 
312
 
313
  result = f"1. [{title}]({link}) — {human_format_views(views)}" # Изменено на нумерованный список
314
  return result, views
315
+ # Функция для определения платформы
316
+ def detect_platform(link: str) -> str:
317
+ link = link.strip().lower()
318
+ if "t.me/" in link or "telegram.me/" in link:
319
+ return "telegram"
320
+ elif "vk.com/wall" in link:
321
+ return "vk"
322
+ return ""
323
+
324
+ # Интерфейс Streamlit
325
  def main():
326
+ st.title("PR Tool made by @Dina")
327
+
328
+ # Если токены не получены, показываем авторизацию
329
+ if not st.session_state.get("VK_ACCESS_TOKEN"):
330
+ vk_auth()
331
+ return
332
+
333
+ # Если токены есть, показываем парсер
334
+ st.write("Вставьте ссылки (каждая на новой строке) — как Telegram, так и ВКонтакте. Пример:")
335
+ st.code("""
336
+ https://t.me/meduzalive/122479
337
+ https://vk.com/wall-12256840_3220312
338
+ https://telegram.me/za_traktor/27423
339
+ https://vk.com/wall-237426_1643234
340
+ """)
341
+
342
+ links_input = st.text_area("Ссылки:", height=200)
343
+
344
+ if st.button("Обработать"):
345
+ lines = links_input.strip().split('\n')
346
+ tg_results = []
347
+ tg_total_views = 0
348
+ vk_results = []
349
+ vk_total_views = 0
350
+
351
+ for link in lines:
352
+ platform = detect_platform(link)
353
+ if platform == "telegram":
354
+ res_line, views = process_telegram_link(link)
355
+ tg_results.append((res_line, views))
356
+ tg_total_views += views
357
+ elif platform == "vk":
358
+ res_line, views = process_vk_link(link)
359
+ vk_results.append((res_line, views))
360
+ vk_total_views += views
361
+ else:
362
+ st.markdown(f"**Ошибка**: не распознал платформу — {link}", unsafe_allow_html=True)
363
+ tg_results.sort(key=lambda x: x[1], reverse=True)
364
+ vk_results.sort(key=lambda x: x[1], reverse=True)
365
 
366
+ md_lines = []
367
 
368
+ # --- Telegram ---
369
  md_lines.append("## Telegram")
370
  md_lines.append(f"**Суммарный охват постов — {human_format_views(tg_total_views)} просмотров**")
371
  if tg_results:
 
373
  md_lines.append(f"{i}. {r_line[3:]}") # Убираем "1. " из строки и добавляем новый номер
374
  else:
375
  md_lines.append("_Нет ссылок на Telegram_")
376
+ md_lines.append("")
377
+ # --- ВКонтакте ---
 
378
  md_lines.append("## ВКонтакте")
379
  md_lines.append(f"**Суммарный охват постов — {human_format_views(vk_total_views)} просмотров**")
380
  if vk_results:
 
413
  """
414
  components.html(copy_button_html, height=80)
415
 
 
 
416
  # Запуск приложения
417
  if __name__ == "__main__":
418
  main()