mirror of
https://git.squeakyrat.moe/faggot-chan/
synced 2026-11-04 18:35:45 +01:00
gr
This commit is contained in:
1 parent
bdd7d1f57c
commit
64af28f820
1 file changed
+18
-15
@@ -110,21 +110,24 @@ _main_ws = None # kept open across messages instead of reconnecting every time
|
||||
|
||||
async def call_main(payload: str) -> tuple[bool, str]:
|
||||
global _main_ws
|
||||
try:
|
||||
if _main_ws is None or _main_ws.closed:
|
||||
_main_ws = await websockets.connect(MAIN_URI, open_timeout=None, ping_timeout=None)
|
||||
await _main_ws.send(payload)
|
||||
raw = await _main_ws.recv()
|
||||
data = json.loads(raw)
|
||||
if "error" in data:
|
||||
return False, data["error"]
|
||||
return True, data["ok"]
|
||||
except websockets.exceptions.ConnectionClosedOK:
|
||||
_main_ws = None
|
||||
return False, f"[{now_str()}] websocket closed cleanly (no reply)"
|
||||
except Exception as e:
|
||||
_main_ws = None
|
||||
return False, f"[{now_str()}] websocket error: {e}"
|
||||
for attempt in range(2): # retry once with a fresh connection if the cached one turned out dead
|
||||
try:
|
||||
if _main_ws is None:
|
||||
_main_ws = await websockets.connect(MAIN_URI, open_timeout=None, ping_timeout=None)
|
||||
await _main_ws.send(payload)
|
||||
raw = await _main_ws.recv()
|
||||
data = json.loads(raw)
|
||||
if "error" in data:
|
||||
return False, data["error"]
|
||||
return True, data["ok"]
|
||||
except websockets.exceptions.ConnectionClosedOK:
|
||||
_main_ws = None
|
||||
return False, f"[{now_str()}] websocket closed cleanly (no reply)"
|
||||
except Exception as e:
|
||||
_main_ws = None
|
||||
if attempt == 0:
|
||||
continue # one retry with a fresh connection before giving up
|
||||
return False, f"[{now_str()}] websocket error: {e}"
|
||||
|
||||
async def handle_error(error_msg: str, notify_channel=None, notify_user=None):
|
||||
print(error_msg)
|
||||
|
||||
Reference in new issue
Block a user