удаление ссылки пользователя после получения видео

This commit is contained in:
vrubelroman 2025-12-10 17:12:43 +03:00
parent a5d56fc3be
commit 5d597d199f
2 changed files with 37 additions and 13 deletions

38
bot.py
View file

@ -400,7 +400,10 @@ def check_instagram_cookies_expiry() -> tuple[bool, int]:
try:
current_time = time.time()
min_expiry = None
valid_expiries = []
# Важные cookies для Instagram (проверяем их в первую очередь)
important_cookies = ['sessionid', 'csrftoken', 'ds_user_id']
with open(cookies_file_path, 'r') as f:
for line in f:
@ -413,21 +416,36 @@ def check_instagram_cookies_expiry() -> tuple[bool, int]:
if 'instagram' in domain.lower():
try:
expiry = int(parts[4]) # Unix timestamp
if min_expiry is None or expiry < min_expiry:
min_expiry = expiry
cookie_name = parts[5] if len(parts) > 5 else ''
# Игнорируем невалидные expiry (0, отрицательные, или слишком старые)
# Session cookies (expiry = 0) также игнорируем для проверки срока
if expiry > 0 and expiry > 946684800: # Фильтр: после 2000-01-01 (избегаем epoch 0)
# Для важных cookies проверяем строже
if cookie_name in important_cookies:
if expiry > current_time:
valid_expiries.append(expiry)
else:
valid_expiries.append(expiry)
except (ValueError, IndexError):
continue
if min_expiry is None:
return False, 0
if not valid_expiries:
logger.warning("Не найдено валидных Instagram cookies с нормальным сроком действия")
# Если нет валидных expiry, но есть cookies - считаем их действительными
# (возможно, это session cookies)
return True, 30 # Возвращаем разумное значение по умолчанию
# Берем минимальный валидный expiry
min_expiry = min(valid_expiries)
days_until_expiry = (min_expiry - current_time) / 86400
is_valid = min_expiry > current_time
return is_valid, int(days_until_expiry)
except Exception as e:
logger.error(f"Ошибка при проверке срока действия cookies: {e}")
return False, 0
# В случае ошибки считаем cookies действительными (не блокируем работу)
return True, 30
async def keep_instagram_session_alive():
@ -680,7 +698,13 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
except Exception as e:
logger.warning(f"Не удалось удалить файл {video_path}: {e}")
await status_message.delete()
# Удаляем сообщение со ссылкой и статусное сообщение
try:
await status_message.delete()
await update.message.delete()
logger.info(f"Удалено сообщение пользователя с ссылкой (chat_id: {chat_id})")
except Exception as e:
logger.warning(f"Не удалось удалить сообщение: {e}")
except Exception as e:
logger.error(f"Ошибка: {e}")