Modified:
/gozerbot/irc/bot.py
/gozerbot/irc/irc.py
/gozerbot/plugs/irc.py
=======================================
--- /gozerbot/irc/bot.py Sun Jan 22 17:22:47 2012
+++ /gozerbot/irc/bot.py Fri Apr 6 07:44:54 2012
@@ -246,6 +246,7 @@
""" join a channel .. use optional password. """
result = Irc.join(self, channel, password)
if result != 1: return result
+ channel = channel.lower()
if not self.channels.has_key(channel):
self.channels.setdefault(channel, {})
chan = self.channels[channel]
got = False
@@ -261,7 +262,7 @@
""" output what to printto. """
if type(printto) == type(Queue.Queue):
printto.put_nowait('[%s] %s' % (self.name, what)) ; return
notice = False
- try: notice = self.channels[printto]['notice']
+ try: notice = self.channels[printto.lower()]['notice']
except (KeyError, TypeError): pass
if notice: how = 'notice'
Irc.say(self, printto, what, who, how, fromm, speed, groupchat)
@@ -280,8 +281,8 @@
if '\001' in ievent.txt: Irc.handle_privmsg(self, ievent) ; return
ievent.bot = self
ievent.sock = self.sock
- chan = ievent.channel
- if chan == self.nick:
+ chan = ievent.channel.lower()
+ if chan == self.nick.lower():
ievent.msg = 1
ievent.speed = 7
ievent.printto = ievent.nick
@@ -324,9 +325,9 @@
if ievent.nick in self.nicks401:
rlog(10, self.name, "%s is available again" % ievent.nick)
self.nicks401.remove(ievent.nick)
- chan = ievent.channel
+ chan = ievent.channel.lower()
nick = ievent.nick
- if nick == self.nick:
+ if nick.lower() == self.nick.lower():
if not self.channels.has_key(chan):
self.channels[chan] = {}
self.channels[chan]['cc'] = self.cfg['defaultcc'] or '!'
@@ -347,7 +348,7 @@
""" handle kick event. """
try: who = ievent.arguments[1]
except IndexError: return
- chan = ievent.channel
+ chan = ievent.channel.lower()
if who == self.nick:
if chan in self.state['joinedchannels']:
self.state['joinedchannels'].remove(chan)
@@ -357,7 +358,7 @@
""" update userhost cache on nick change. """
nick = ievent.txt
self.userhosts.data[nick] = ievent.userhost
- if ievent.nick == self.nick:
+ if ievent.nick.lower() == self.nick.lower():
self.cfg['nick'] = nick
self.cfg.save()
try: self.userchannels[nick] = self.userchannels[ievent.nick]
@@ -365,8 +366,8 @@
def handle_part(self, ievent):
""" handle parts. """
- chan = ievent.channel
- if ievent.nick == self.nick:
+ chan = ievent.channel.lower()
+ if ievent.nick.lower() == self.nick.lower():
rlog(1, self.name, 'parted channel %s' % chan)
if chan in self.state['joinedchannels']:
self.state['joinedchannels'].remove(chan)
@@ -377,7 +378,7 @@
try:
Irc.handle_ievent(self, ievent)
if ievent.cmnd == 'JOIN' or ievent.msg:
- if ievent.nick in self.nicks401:
self.nicks401.remove(ievent.nick)
+ if ievent.nick.lower() in self.nicks401:
self.nicks401.remove(ievent.nick.lower())
i = Ircevent()
i.copyin(ievent)
i.bot = self
@@ -394,7 +395,7 @@
rlog(5, self.name, "mode change %s" % str(ievent.arguments))
try: dummy = ievent.arguments[2]
except IndexError:
- chan = ievent.channel
+ chan = ievent.channel.lower()
self.getchannelmode(chan)
self.channels.set(chan, 'mode', ievent.arguments[1])
@@ -409,7 +410,7 @@
def handle_352(self, ievent):
""" handle 352 response .. sync with userhosts cache. """
args = ievent.arguments
- channel = args[1]
+ channel = args[1].lower()
nick = args[5]
user = args[2]
host = args[3]
@@ -421,7 +422,7 @@
def handle_353(self, ievent):
""" handle 353 .. check if we are op. """
userlist = ievent.txt.split()
- chan = ievent.channel
+ chan = ievent.channel.lower()
for i in userlist:
if i[0] == '@' and i[1:] == self.nick:
if chan not in self.state['opchan']:
self.state['opchan'].append(chan)
=======================================
--- /gozerbot/irc/irc.py Sat Jan 21 07:38:35 2012
+++ /gozerbot/irc/irc.py Fri Apr 6 07:44:54 2012
@@ -568,6 +568,7 @@
def join(self, channel, password=None):
""" join channel with optional password. """
if not channel: return
+ channel = channel.lower()
if password:
self._raw('JOIN %s %s' % (channel, password))
try:
@@ -582,9 +583,13 @@
if not channel: return
self._raw('PART %s' % channel)
try:
- self.state['joinedchannels'].remove(channel)
+ self.state['joinedchannels'].remove(channel.lower())
self.state.save()
- except (KeyError, ValueError): pass
+ except (KeyError, ValueError):
+ try:
+ self.state['joinedchannels'].remove(channel)
+ self.state.save()
+ except (KeyError, ValueError): pass
def who(self, who):
""" send who query. """
=======================================
--- /gozerbot/plugs/irc.py Sat Jan 21 01:48:30 2012
+++ /gozerbot/plugs/irc.py Fri Apr 6 07:44:54 2012
@@ -89,7 +89,7 @@
""" delchan <channel> .. remove channel from bot.channels. """
try:
- chan = ievent.args[0].lower()
+ chan = ievent.args[0]
except IndexError:
ievent.missing("<channel>")
return
@@ -97,12 +97,22 @@
try:
bot.state['joinedchannels'].remove(chan)
bot.state.save()
+ except ValueError: pass
+
+ try:
+ bot.state['joinedchannels'].remove(chan.lower())
+ bot.state.save()
except ValueError:
pass
try:
del bot.channels.data[chan]
bot.channels.save()
+ except KeyError: pass
+
+ try:
+ del bot.channels.data[chan.lower()]
+ bot.channels.save()
except KeyError:
ievent.reply("no channel %s in database" % chan)