43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Turn text into zalgo text."""
|
|
import logging
|
|
|
|
import irc.client
|
|
from zalgo_text import zalgo
|
|
|
|
from ircbot.lib import Plugin
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Zalgo(Plugin):
|
|
"""Zalgoify text on demand."""
|
|
|
|
zalgo_regex = r'^!zalgo\s+(.*)$'
|
|
|
|
def start(self):
|
|
"""Set up the handlers."""
|
|
logger.debug("%s starting up", __name__)
|
|
self.connection.reactor.add_global_regex_handler(['pubmsg', 'privmsg'], self.zalgo_regex,
|
|
self.zalgofy, 0)
|
|
|
|
super(Zalgo, self).start()
|
|
|
|
def stop(self):
|
|
"""Tear down handlers."""
|
|
logger.debug("%s shutting down", __name__)
|
|
self.connection.reactor.remove_global_regex_handler(['pubmsg', 'privmsg'], self.zalgofy)
|
|
|
|
super(Zalgo, self).stop()
|
|
|
|
def zalgofy(self, connection, event, match):
|
|
"""Turn text into zalgo text."""
|
|
who = irc.client.NickMask(event.source).nick
|
|
what = match.group(1)
|
|
logger.debug("%s requested zelgo text for %s", who, what)
|
|
zalgoed = zalgo.zalgo().zalgofy(what)
|
|
self.bot.reply(event, f"{zalgoed}")
|
|
return 'NO MORE'
|
|
|
|
|
|
plugin = Zalgo
|