Last active
June 30, 2016 21:27
-
-
Save faried/d669930f3adb92905435a10a27cab8af to your computer and use it in GitHub Desktop.
python-rtmbot/plugins/figlet/figlet.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import unicode_literals | |
from json import loads | |
from optparse import OptionParser | |
from shlex import split | |
from pyfiglet import Figlet | |
crontable = [] | |
outputs = [] | |
def parse(lineparts): | |
parser = OptionParser() | |
parser.add_option("-f", dest="font", default="standard") | |
parser.add_option("-r", dest="reverse", default=False, action="store_true") | |
parser.add_option("-F", dest="flip", default=False, action="store_true") | |
return parser.parse_args(lineparts) | |
def process_message(data): | |
if data.get("user", "") == "U1MRZ396F": | |
return | |
try: | |
ls = split(data["text"]) | |
except ValueError as exc: | |
print("failed to handle %s, ignoring" % data["text"]) | |
# outputs.append([data["channel"], "what?"]) | |
return | |
# can this happen? | |
if not ls: | |
return | |
maybename = ls.pop(0) | |
maybename = maybename.replace("@", "").replace(":", "") | |
if maybename.lower() != "figlet" and maybename != "<U1MRZ396F>": | |
return | |
opts, args = parse(ls) | |
msg = " ".join(args) | |
if not msg: | |
outputs.append([data["channel"], "what?"]) | |
return | |
figlet = Figlet() | |
if opts.font not in figlet.getFonts(): | |
outputs.append([data["channel"], "i don't know that font"]) | |
return | |
figlet.setFont(font=opts.font) | |
r = figlet.renderText(msg) | |
if opts.reverse: | |
r = r.reverse() | |
if opts.flip: | |
r = r.flip() | |
outputs.append([data["channel"], "```%s```\n" % r]) | |
# eof |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment