fix data safe no missing all
Browse files- akn/clientmulti_bot.py +21 -2
akn/clientmulti_bot.py
CHANGED
@@ -499,14 +499,33 @@ async def _check_session_health(client: Client, user_id: int, interval: int = 30
|
|
499 |
await asyncio.sleep(60)
|
500 |
|
501 |
async def _handle_dead_session(user_id: int, error: Exception) -> None:
|
502 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
503 |
await _send_message_warning(
|
504 |
user_id,
|
505 |
f"π¨ Session terminated\n"
|
506 |
f"User: {user_id}\n"
|
507 |
f"Reason: Error: {type(error).__name__}"
|
508 |
)
|
509 |
-
await db.remove_strings_userv(user_id)
|
510 |
LOGS.warning(
|
511 |
f"π¨ Session terminated\n"
|
512 |
f"User: {user_id}\n"
|
|
|
499 |
await asyncio.sleep(60)
|
500 |
|
501 |
async def _handle_dead_session(user_id: int, error: Exception) -> None:
|
502 |
+
request = await db.session.find_one({"user_id": user_id})
|
503 |
+
if not request:
|
504 |
+
return
|
505 |
+
|
506 |
+
for user in request["client_user"]:
|
507 |
+
if user.get("user_id") == user_id:
|
508 |
+
await db.session.update_one(
|
509 |
+
{
|
510 |
+
"_id": request["_id"],
|
511 |
+
"user_client.user_id": user_id
|
512 |
+
},
|
513 |
+
{
|
514 |
+
"$set": {
|
515 |
+
"user_client.$.is_active": False
|
516 |
+
},
|
517 |
+
"$unset": {
|
518 |
+
"user_client.$.session_string": ""
|
519 |
+
}
|
520 |
+
}
|
521 |
+
)
|
522 |
+
break
|
523 |
await _send_message_warning(
|
524 |
user_id,
|
525 |
f"π¨ Session terminated\n"
|
526 |
f"User: {user_id}\n"
|
527 |
f"Reason: Error: {type(error).__name__}"
|
528 |
)
|
|
|
529 |
LOGS.warning(
|
530 |
f"π¨ Session terminated\n"
|
531 |
f"User: {user_id}\n"
|