2023-10-23 22:10:07 +00:00
|
|
|
#!/usr/bin/python3
|
|
|
|
from os import system
|
|
|
|
from time import sleep
|
|
|
|
from sys import argv as args
|
|
|
|
from threading import Thread
|
|
|
|
|
|
|
|
call = "python3 -u ircbot.py"
|
|
|
|
|
|
|
|
|
|
|
|
def launch(server: str) -> None:
|
|
|
|
system(f"{call} {server}")
|
|
|
|
|
|
|
|
|
|
|
|
threads = {}
|
|
|
|
servers = [
|
|
|
|
"ircnow",
|
|
|
|
"replirc",
|
2023-10-23 22:23:53 +00:00
|
|
|
# "efnet",
|
2023-10-23 22:10:07 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def is_dead(thr):
|
|
|
|
thr.join(timeout=0)
|
|
|
|
return not thr.is_alive()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
print("[LOG][CORE] Begin initialization")
|
|
|
|
for server in servers:
|
|
|
|
t = Thread(target=launch, args=(server,))
|
|
|
|
t.daemon = True
|
|
|
|
threads[server] = t
|
|
|
|
t.start()
|
|
|
|
print("[LOG][CORE] Started all instances. Idling...")
|
|
|
|
while 1:
|
|
|
|
sleep(10)
|
|
|
|
for server in threads:
|
|
|
|
t = threads[server]
|
|
|
|
if is_dead(t):
|
|
|
|
exit(f"[EXIT][CORE] The thread for {server} died")
|