Files
Hippolyzer/addon_examples/spongecase.py
Salad Dais a39d025a04 Move Circuit and Message to lib.base
Fairly invasive, but will help make lib.base useful again. No
more Message / ProxiedMessage split!
2021-06-03 07:00:32 +00:00

29 lines
992 B
Python

import itertools
from hippolyzer.lib.base.message.message import Message
from hippolyzer.lib.proxy.region import ProxiedRegion
from hippolyzer.lib.proxy.sessions import Session
def _to_spongecase(val):
# give alternating casing for each character
spongecased = itertools.zip_longest(val[::2].upper(), val[1::2].lower(), fillvalue="")
# join them back together
return "".join(itertools.chain(*spongecased))
def handle_lludp_message(session: Session, _region: ProxiedRegion, message: Message):
ctx = session.addon_ctx
ctx.setdefault("spongecase", False)
if message.name == "ChatFromViewer":
chat = message["ChatData"]["Message"]
if chat == "spongeon":
ctx["spongecase"] = True
elif chat == "spongeoff":
ctx["spongecase"] = False
if ctx["spongecase"]:
if not chat or message["ChatData"]["Channel"] != 0:
return
message["ChatData"]["Message"] = _to_spongecase(chat)