# vim: fileencoding=utf-8
# module for 's/regex/replacement/' style correction
# warning: arbitrary regex's are generally capable of various DoS attacks on CPU/memory usage. use with caution.
-# see for usage examples: https://github.com/zonidjan/erebus/commit/d7e9802778477f1faa26a03078cb1b3c018a5e5c
# This file is released into the public domain; see http://unlicense.org/
# module info
# module code
import re
from collections import namedtuple
-re_findsub = re.compile(r"s(.)(?P<search>[^\1]+)\1(?P<replace>[^\1]+)\1(?P<global>g)?;?")
+re_findsub = re.compile(r"""s([/'";:!@#$%^&-_=`~])(?P<search>.+?)\1(?P<replace>.*?)(?:\1(?P<global>g)?|$)""")
Line = namedtuple('Line', ['sender', 'msg'])
lastline = {}
@lib.hooknum("PRIVMSG")
pieces = line.split(None, 3)
fromnick = pieces[0][1:].split('!')[0]
chan = pieces[2]
+ if chan[0] != "#": return
msg = pieces[3][1:]
+
mo = re_findsub.match(msg)
if mo:
if mo.group('global') is not None: