diff options
| author | 2018-07-02 12:08:26 +0100 | |
|---|---|---|
| committer | 2018-07-02 12:08:26 +0100 | |
| commit | e89b4b6a835475b5ba2b046240176acd6811ed00 (patch) | |
| tree | d794995d968ed0c94d29085b6b14518226fab3f6 | |
| parent | random.py -> random_number.py due to name collision (stdlib) (diff) | |
Don't add a server to bot.servers until it's connected
| -rw-r--r-- | IRCBot.py | 9 | ||||
| -rwxr-xr-x | start.py | 22 |
2 files changed, 15 insertions, 16 deletions
@@ -24,7 +24,6 @@ class Bot(object): if not new_server.get_setting("connect", True): return self.events.on("new").on("server").call(server=new_server) - self.servers[new_server.fileno()] = new_server if connect and new_server.get_setting("connect", True): self.connect(new_server) return new_server @@ -35,15 +34,9 @@ class Bot(object): sys.stderr.write("Failed to connect to %s\n" % str(server)) traceback.print_exc() return False + self.servers[server.fileno()] = server self.poll.register(server.fileno(), select.EPOLLOUT) return True - def connect_all(self): - for server in self.servers.values(): - if server.get_setting("connect", True): - if not self.connect(server): - return False - return True - def setup_timers(self, event): for setting, value in self.find_settings("timer-%"): id = setting.split("timer-", 1)[1] @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import argparse, time +import argparse, sys, time import IRCBot, Config, Database def bool_input(s): @@ -25,14 +25,20 @@ bot.config_object = config_object bot.args = args bot.modules.load_modules() -servers = database.get_servers() -for server in servers: - bot.add_server(*server) -if len(bot.servers): +server_details = database.get_servers() +servers = [] +for server_detail in server_details: + server = bot.add_server(*server_detail) + if not server == None: + servers.append(server) +if len(servers): bot.events.on("boot").on("done").call() - time.sleep(5) - if bot.connect_all(): - bot.run() + for server in servers: + if not bot.connect(server): + sys.stderr.write("failed to connect to '%s', exiting\r\n" % ( + str(server))) + sys.exit(1) + bot.run() else: try: if bool_input("no servers found, add one?"): |
