Fix: Add safety checks in get_client() and improve error handling
Browse files- utils/clients.py +5 -5
utils/clients.py
CHANGED
|
@@ -3,8 +3,6 @@ from pathlib import Path
|
|
| 3 |
from pyrogram import Client
|
| 4 |
from utils.directoryHandler import backup_drive_data, loadDriveData
|
| 5 |
from utils.logger import Logger
|
| 6 |
-
import os
|
| 7 |
-
import signal
|
| 8 |
|
| 9 |
logger = Logger(__name__)
|
| 10 |
|
|
@@ -84,9 +82,7 @@ async def initialize_clients():
|
|
| 84 |
)
|
| 85 |
if len(multi_clients) == 0:
|
| 86 |
logger.error("No Clients Were Initialized")
|
| 87 |
-
|
| 88 |
-
# Forcefully terminates the program immediately
|
| 89 |
-
os.kill(os.getpid(), signal.SIGKILL)
|
| 90 |
|
| 91 |
if len(premium_clients) == 0:
|
| 92 |
logger.info("No Premium Clients Were Initialized")
|
|
@@ -104,10 +100,14 @@ def get_client(premium_required=False) -> Client:
|
|
| 104 |
global multi_clients, work_loads, premium_clients, premium_work_loads
|
| 105 |
|
| 106 |
if premium_required:
|
|
|
|
|
|
|
| 107 |
index = min(premium_work_loads, key=premium_work_loads.get)
|
| 108 |
premium_work_loads[index] += 1
|
| 109 |
return premium_clients[index]
|
| 110 |
|
|
|
|
|
|
|
| 111 |
index = min(work_loads, key=work_loads.get)
|
| 112 |
work_loads[index] += 1
|
| 113 |
return multi_clients[index]
|
|
|
|
| 3 |
from pyrogram import Client
|
| 4 |
from utils.directoryHandler import backup_drive_data, loadDriveData
|
| 5 |
from utils.logger import Logger
|
|
|
|
|
|
|
| 6 |
|
| 7 |
logger = Logger(__name__)
|
| 8 |
|
|
|
|
| 82 |
)
|
| 83 |
if len(multi_clients) == 0:
|
| 84 |
logger.error("No Clients Were Initialized")
|
| 85 |
+
raise RuntimeError("No Clients Were Initialized - Check BOT_TOKENS configuration")
|
|
|
|
|
|
|
| 86 |
|
| 87 |
if len(premium_clients) == 0:
|
| 88 |
logger.info("No Premium Clients Were Initialized")
|
|
|
|
| 100 |
global multi_clients, work_loads, premium_clients, premium_work_loads
|
| 101 |
|
| 102 |
if premium_required:
|
| 103 |
+
if not premium_work_loads:
|
| 104 |
+
raise RuntimeError("No Premium Clients Available")
|
| 105 |
index = min(premium_work_loads, key=premium_work_loads.get)
|
| 106 |
premium_work_loads[index] += 1
|
| 107 |
return premium_clients[index]
|
| 108 |
|
| 109 |
+
if not work_loads:
|
| 110 |
+
raise RuntimeError("No Clients Available - Check BOT_TOKENS configuration")
|
| 111 |
index = min(work_loads, key=work_loads.get)
|
| 112 |
work_loads[index] += 1
|
| 113 |
return multi_clients[index]
|