From 5a3d901b5c5652abac037acefe28ecc4f147c248 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 29 Aug 2009 10:36:00 +0000 Subject: [PATCH] Added #1 to default channels. Had IRC log to a default channel. Added some more feedback upon module import failures. --- src/config_defaults.py | 4 ++-- src/initial_setup.py | 12 ++++++++---- src/irc/connection.py | 33 +++++++++++++++++++++------------ src/server.py | 4 ++-- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/config_defaults.py b/src/config_defaults.py index d186daceca..79e25a77d3 100644 --- a/src/config_defaults.py +++ b/src/config_defaults.py @@ -74,10 +74,10 @@ Your names of various default comm channels for emitting debug- or informative messages. """ -COMMCHAN_IMC2_INFO = 'MUDInfo' COMMCHAN_MUD_INFO = 'MUDInfo' COMMCHAN_MUD_CONNECTIONS = 'MUDConnections' - +COMMCHAN_IMC2_INFO = 'MUDInfo' +COMMCHAN_IRC_INFO = 'MUDInfo' """ IMC Configuration diff --git a/src/initial_setup.py b/src/initial_setup.py index 0ab91b27fd..03658a997c 100644 --- a/src/initial_setup.py +++ b/src/initial_setup.py @@ -71,10 +71,14 @@ def create_channels(): description="Public Discussion") chan_pub.is_joined_by_default = True chan_pub.save() - comsys.create_channel(settings.COMMCHAN_MUD_INFO, god_user_obj, - description="Informative messages") - comsys.create_channel(settings.COMMCHAN_MUD_CONNECTIONS, god_user_obj, - description="Connection log") + chan_info = comsys.create_channel(settings.COMMCHAN_MUD_INFO, god_user_obj, + description="Informative messages") + chan_conn = comsys.create_channel(settings.COMMCHAN_MUD_CONNECTIONS, god_user_obj, + description="Connection log") + #add god user to default channels. + comsys.plr_add_channel(god_user_obj, "pub", chan_pub) + comsys.plr_add_channel(god_user_obj, "info", chan_info) + comsys.plr_add_channel(god_user_obj, "conn", chan_conn) def create_config_values(): """ diff --git a/src/irc/connection.py b/src/irc/connection.py index 73749ea13a..32c97d73aa 100644 --- a/src/irc/connection.py +++ b/src/irc/connection.py @@ -7,6 +7,7 @@ more Evennia channels. from twisted.words.protocols import irc from twisted.internet import protocol from twisted.internet import reactor +from django.conf import settings from src.irc.models import IRCChannelMapping from src import comsys from src import logger @@ -14,6 +15,12 @@ from src import logger #store all irc channels IRC_CHANNELS = [] +def cemit_info(message): + """ + Send info to default info channel + """ + comsys.send_cmessage(settings.COMMCHAN_IRC_INFO, 'IRC: %s' % message,from_external="IRC") + class IRC_Bot(irc.IRCClient): def _get_nickname(self): @@ -28,17 +35,17 @@ class IRC_Bot(irc.IRCClient): # This is the first point the protocol is instantiated. # add this protocol instance to the global list so we # can access it later to send data. - IRC_CHANNELS.append(self) - - logger.log_infomsg("IRC: Client connecting to %s.'" % (self.factory.channel)) + IRC_CHANNELS.append(self) + cemit_info("Client connecting to %s.'" % (self.factory.channel)) def joined(self, channel): - logger.log_infomsg("Joined %s/%s as '%s'." % (self.factory.network,channel,self.factory.nickname)) + msg = "Joined %s/%s as '%s'." % (self.factory.network,channel,self.factory.nickname) + cemit_info(msg) + logger.log_infomsg(msg) def privmsg(self, user, irc_channel, msg): "Someone has written something in channel. Echo it to the evennia channel" - print "got msg: %s" % msg try: #find irc->evennia channel mappings mappings = IRCChannelMapping.objects.filter(irc_channel_name=irc_channel) @@ -49,12 +56,12 @@ class IRC_Bot(irc.IRCClient): if user: user.strip() msg = "%s@%s: %s" % (user,irc_channel,msg) - - logger.log_infomsg("IRC: " + msg) + #logger.log_infomsg(">IRC: " + msg) class IRC_BotFactory(protocol.ClientFactory): protocol = IRC_Bot @@ -71,11 +78,13 @@ class IRC_BotFactory(protocol.ClientFactory): self.channel = channel self.nickname = nickname def clientConnectionLost(self, connector, reason): - logger.log_errmsg("IRC: Lost connection (%s), reconnecting." % reason) + cemit_info("Lost connection (%s), reconnecting." % reason) connector.connect() def clientConnectionFailed(self, connector, reason): - logger.log_errmsg("IRC: Could not connect: %s" % reason) - + msg = "Could not connect: %s" % reason + cemit_info(msg) + logger.log_errmsg(msg) + def connect_to_IRC(irc_network,irc_port,irc_channel,irc_bot_nick ): "Create the bot instance and connect to the IRC network and channel." connect = reactor.connectTCP(irc_network, irc_port, diff --git a/src/server.py b/src/server.py index bb33ec538f..5cf730b118 100755 --- a/src/server.py +++ b/src/server.py @@ -90,8 +90,8 @@ class EvenniaService(service.Service): for cmd_mod in cmd_modules: try: __import__(cmd_mod) - except ImportError: - logger.log_errmsg("ERROR: Unable to load command module: %s" % cmd_mod) + except ImportError, e: + logger.log_errmsg("ERROR: Unable to load command module: %s (%s)" % (cmd_mod, e)) continue """