41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from bot import IRCLine
|
|
BOT = None
|
|
|
|
def respond(ev,msg):
|
|
target = ev.target if ev.target.startswith("#") else ev.hostmask.nick
|
|
prefix = ev.hostmask.nick+": " if ev.target.startswith("#") else ""
|
|
BOT.socket.send(IRCLine("PRIVMSG",target,prefix+msg))
|
|
|
|
from dictdata import DictData
|
|
|
|
pronouns = DictData("pronouns.json")
|
|
assocd = DictData("assoc_pronouns.json")
|
|
|
|
def on_cmd_pronouns(event):
|
|
if not BOT: return
|
|
nick = event.hostmask.nick
|
|
account = event.tags.get("account",nick)
|
|
if len(event.parts)==1:
|
|
if event.parts[0].lower() in "help set".split():
|
|
respond(event,f"Usage: {BOT.prefix}pronouns [nick] or {BOT.prefix}pronouns set <pronouns>")
|
|
return
|
|
nick = event.parts[0].lower()
|
|
account = assocd.get(nick,nick)
|
|
elif len(event.parts)>1:
|
|
if event.parts[0].lower()=="set":
|
|
pronouns[account]=" ".join(event.parts[1:])
|
|
pn = pronouns.get(account,"not set")
|
|
respond(event,f"Pronouns for {nick}: {pn}")
|
|
|
|
def assoc(event):
|
|
try:
|
|
event = event.parsed
|
|
assocd[event.hostmask.nick]=event.tags.get("account",event.hostmask.nick)
|
|
except: pass
|
|
|
|
def register(bot):
|
|
global BOT
|
|
BOT=bot
|
|
bot.event_manager.on("command_pronouns",on_cmd_pronouns)
|
|
bot.event_manager.on("raw_line",assoc)
|