feat support bot

This commit is contained in:
Yuriy Yuriev
2026-05-21 00:17:58 +07:00
parent 98c6e08e46
commit 28d23b8de9
4 changed files with 189 additions and 50 deletions
+12 -4
View File
@@ -1906,7 +1906,8 @@ class BotInterface:
f"📺 Стример: {params.channel}\n"
f"🌐 Домены: {domains}\n\n"
f"🔗 Ссылок найдено: {params.links_found}\n"
f"Успешных кликов: {params.successful_visits}\n\n"
f"Кликов: {params.successful_visits}/{params.total_planned_visits}\n"
f"В очереди: {params.pending_visits}\n\n"
f"📊 CTR: {ctr_str}\n"
f"⏱ Пауза между кликами: {params.min_delay}{params.max_delay} сек\n"
f"📖 Время на странице: {params.min_reading}{params.max_reading} сек"
@@ -1967,7 +1968,8 @@ class BotInterface:
f"📺 Стример: {params.channel}\n"
f"🌐 Домены: {domains}\n\n"
f"🔗 Ссылок найдено: {params.links_found}\n"
f"Успешных кликов: {params.successful_visits}\n\n"
f"Кликов: {params.successful_visits}/{params.total_planned_visits}\n"
f"В очереди: {params.pending_visits}\n\n"
f"📊 CTR: {ctr_str} от зрителей\n"
f"⏱ Пауза между кликами: {params.min_delay}{params.max_delay} сек\n"
f"📖 Время на странице: {params.min_reading}{params.max_reading} сек"
@@ -2239,11 +2241,14 @@ class BotInterface:
visits_count = max(1, round(params.visits_per_link * ctr / 100))
calc_info = f"зрители недоступны, фикс {params.visits_per_link} × {ctr:.2f}% = {visits_count} кликов"
logger.info(f"🔗 @{username} {url}{visits_count} clicks ({calc_info})")
params.pending_visits += visits_count
params.total_planned_visits += visits_count
logger.info(f"🔗 @{username} {url}{visits_count} clicks ({calc_info}), total pending: {params.pending_visits}")
await send_message_safe(
message.bot, message.chat.id,
f"🔗 @{username}: {url[:60]}\n"
f"📊 {calc_info}"
f"📊 {calc_info}\n"
f"В очереди всего: {params.pending_visits} кликов"
)
# Роут: [задержка] → клик1 → [задержка] → клик2 → ... → кликN
@@ -2280,6 +2285,7 @@ class BotInterface:
try:
result = await self.browser_service.visit_page(url, reading)
params.total_visits += 1
params.pending_visits = max(0, params.pending_visits - 1)
if result.success:
params.successful_visits += 1
remaining -= 1
@@ -2287,6 +2293,7 @@ class BotInterface:
new_balance = await self.balance_storage.deduct(params.user_id, 1)
if new_balance <= 0:
params.stopped = True
params.pending_visits = max(0, params.pending_visits - remaining)
await send_message_safe(
message.bot, params.chat_id,
"⚠️ Баланс исчерпан — задача остановлена."
@@ -2296,6 +2303,7 @@ class BotInterface:
remaining -= 1
except Exception as e:
logger.error(f"Visit error: {e}")
params.pending_visits = max(0, params.pending_visits - 1)
remaining -= 1
# Клик завершён — проверяем паузу