add stiky
This commit is contained in:
@@ -173,7 +173,6 @@ class TwitchIRCClient:
|
||||
) -> dict:
|
||||
stats = {"links_found": 0, "messages": 0, "reconnects": 0}
|
||||
|
||||
start_time = datetime.now()
|
||||
last_message_time = datetime.now()
|
||||
drain_errors = 0
|
||||
|
||||
@@ -182,20 +181,24 @@ class TwitchIRCClient:
|
||||
logger.info(f"⏸️ #{self.channel} waiting for resume before connecting...")
|
||||
while is_active and not is_active():
|
||||
await asyncio.sleep(2)
|
||||
if not is_active and not is_active():
|
||||
return stats
|
||||
logger.info(f"▶️ #{self.channel} resumed, connecting to IRC")
|
||||
|
||||
if not await self.connect():
|
||||
raise ConnectionError(f"IRC connect failed for #{self.channel}")
|
||||
|
||||
while duration == 0 or (datetime.now() - start_time).seconds < duration:
|
||||
# start_time после паузы и подключения — пауза не считается в длительность
|
||||
start_time = datetime.now()
|
||||
|
||||
while duration == 0 or (datetime.now() - start_time).total_seconds() < duration:
|
||||
# === ПРОВЕРКА АКТИВНОСТИ ===
|
||||
if is_active and not is_active():
|
||||
logger.info(f"⏸️ #{self.channel} paused, waiting for resume...")
|
||||
await self.disconnect()
|
||||
pause_begin = datetime.now()
|
||||
while is_active and not is_active():
|
||||
await asyncio.sleep(2)
|
||||
# Исключаем время паузы из отсчёта длительности
|
||||
start_time += datetime.now() - pause_begin
|
||||
logger.info(f"▶️ #{self.channel} resumed, reconnecting")
|
||||
await self.connect()
|
||||
last_message_time = datetime.now()
|
||||
|
||||
Reference in New Issue
Block a user