SilverElixir commited on
Commit
2436bd7
·
1 Parent(s): c262572

Log slideshow delivery summary: counts, size, download and send timings

Browse files
Files changed (1) hide show
  1. lumen_tiktok_flow.py +15 -0
lumen_tiktok_flow.py CHANGED
@@ -8,6 +8,7 @@ import logging
8
  import os
9
  import re
10
  import tempfile
 
11
  from typing import Any
12
 
13
  import aiohttp
@@ -237,6 +238,9 @@ async def _try_send_tiktok_slideshow(
237
  if images and isinstance(images, list):
238
  # TikTok разрешает до 35 слайдов, Telegram — 10 за вызов: берём весь пост и шлём несколькими группами.
239
  images_to_fetch = images[:bot.TIKTOK_SLIDESHOW_MAX_ITEMS]
 
 
 
240
  # Статус слайдшоу — через переводы (был захардкожен по-русски).
241
  await bot._edit_message_quietly(status, bot._t(
242
  message.chat.id, "tiktok_dl_slideshow",
@@ -292,6 +296,8 @@ async def _try_send_tiktok_slideshow(
292
  downloaded = list(await asyncio.gather(
293
  *(_download_slide_bounded(u) for u in fetch_urls)
294
  ))
 
 
295
  skipped_slides = sum(1 for b in downloaded if not b)
296
  if skipped_slides:
297
  log.warning("[tiktok] Slideshow: %d of %d slides skipped (failed or over the post size cap).", skipped_slides, len(downloaded))
@@ -368,6 +374,15 @@ async def _try_send_tiktok_slideshow(
368
  if chunk_idx + 1 < len(chunks):
369
  # Пауза между группами — против анти-флуда.
370
  await asyncio.sleep(0.3)
 
 
 
 
 
 
 
 
 
371
  await _send_tiktok_music(session, media_data, message, author, headers)
372
  await bot._delete_message_quietly(status)
373
  return True
 
8
  import os
9
  import re
10
  import tempfile
11
+ import time
12
  from typing import Any
13
 
14
  import aiohttp
 
238
  if images and isinstance(images, list):
239
  # TikTok разрешает до 35 слайдов, Telegram — 10 за вызов: берём весь пост и шлём несколькими группами.
240
  images_to_fetch = images[:bot.TIKTOK_SLIDESHOW_MAX_ITEMS]
241
+ # Тайминги и счётчики в итоговую строку: раньше успех нигде не писался и
242
+ # проверка сводилась к скриншотам (прод 27.10.2026).
243
+ started_at = time.perf_counter()
244
  # Статус слайдшоу — через переводы (был захардкожен по-русски).
245
  await bot._edit_message_quietly(status, bot._t(
246
  message.chat.id, "tiktok_dl_slideshow",
 
296
  downloaded = list(await asyncio.gather(
297
  *(_download_slide_bounded(u) for u in fetch_urls)
298
  ))
299
+ download_elapsed = time.perf_counter() - started_at
300
+ downloaded_bytes = sum(len(b) for b in downloaded if b)
301
  skipped_slides = sum(1 for b in downloaded if not b)
302
  if skipped_slides:
303
  log.warning("[tiktok] Slideshow: %d of %d slides skipped (failed or over the post size cap).", skipped_slides, len(downloaded))
 
374
  if chunk_idx + 1 < len(chunks):
375
  # Пауза между группами — против анти-флуда.
376
  await asyncio.sleep(0.3)
377
+ total_elapsed = time.perf_counter() - started_at
378
+ log.info(
379
+ '[tiktok] Slideshow delivered: %d of %d slides (%d video, %d photo) in %d group(s), %.1f MB, download %.1fs, send %.1fs.',
380
+ len(media_items), len(images_to_fetch), len(probe_results),
381
+ len(media_items) - len(probe_results),
382
+ len(_chunk_tiktok_media_items(media_items)),
383
+ downloaded_bytes / (1024 * 1024),
384
+ download_elapsed, total_elapsed - download_elapsed,
385
+ )
386
  await _send_tiktok_music(session, media_data, message, author, headers)
387
  await bot._delete_message_quietly(status)
388
  return True