From fc456d6660162f7ad3a278d00288865175b30281 Mon Sep 17 00:00:00 2001 From: Brian Sherson Date: Mon, 3 Jun 2013 19:14:03 -0700 Subject: Long-needed update --- sedbot.py | 87 ++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) (limited to 'sedbot.py') diff --git a/sedbot.py b/sedbot.py index 962526e..fe34da4 100644 --- a/sedbot.py +++ b/sedbot.py @@ -9,61 +9,56 @@ class SED(object): self.pattern=r"^!s([,/#])((?:.|\\\1)*)\1((?:.|\\\1)*)\1([ig]*)$" def onRecv(self, IRC, line, data): if data==None: return - (origin, ident, host, cmd, target, params, extinfo)=data - if len(target) and target[0]=="#": target=IRC.channel(target) - if cmd=="PRIVMSG": - matches=re.findall(self.pattern,extinfo) - if matches: - separator, find, replace, flags=matches[0] - find=re.sub("\\\\([,/#\\\\])","\\1",find) - replace=re.sub("\\\\(,/#\\\\)","\\1",replace) - match=False - for t, IRC2, (origin2, ident2, host2, cmd2, target2, params2, extinfo2) in self.history.__reversed__(): - if target!=IRC2.channel(target2): continue - try: - if re.findall(find, extinfo2): - sub=re.sub(find, replace, extinfo2, flags=re.I if "i" in flags else 0) - target.msg("What %s really meant to say was: %s" % (origin2, sub), origin=self) - match=True - break - except: - target.msg("%s: Invalid syntax" % (origin), origin=self) - raise - if not match: - target.msg("%s: I tried. I really tried! But I could not find the pattern: %s" % (origin, find), origin=self) - else: - self.history.append((time.time(), IRC, data)) - while len(self.history) and self.history[0][0]