aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-07-02 12:08:26 +0100
committerGravatar jesopo2018-07-02 12:08:26 +0100
commite89b4b6a835475b5ba2b046240176acd6811ed00 (patch)
treed794995d968ed0c94d29085b6b14518226fab3f6
parentrandom.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.py9
-rwxr-xr-xstart.py22
2 files changed, 15 insertions, 16 deletions
diff --git a/IRCBot.py b/IRCBot.py
index 4c3caf1e..1108aaf6 100644
--- a/IRCBot.py
+++ b/IRCBot.py
@@ -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]
diff --git a/start.py b/start.py
index 848a2a08..53cba532 100755
--- a/start.py
+++ b/start.py
@@ -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?"):