import re @plugin class sed(object): def __init__(self, server): self.server = server self.prnt = server.prnt server.handle("message", self.handle_message) self.s_expr = re.compile("^[s]\/.+\/.*\/$") self.backlog = { } def handle_message(self, channel, user, message): if self.s_expr.match(message): args = message.split("/")[1:-1] for usr,msg in self.backlog[channel]: if user == usr: if msg.find(args[0]): self.server.doMessage(channel, "<%s> %s" % (usr,msg.replace(args[0], args[1]))) return # Code to say something like "Subsitution not found in message history" # would go here, but I left it out because of people using sed on # other people's messages. else: if self.backlog.get(channel, None) is None: self.backlog[channel] = [] if len(self.backlog[channel]) > 99: self.backlog[channel].pop(0) self.backlog[channel].append([user, message])