Party Line: whoami command
This commit is contained in:
parent
1d365359ee
commit
1a5b3c7cc2
|
|
@ -83,10 +83,22 @@ def handle_logout(msg, r, from_known_sender, known_senders: Iterable):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
def handle_help(msg):
|
def handle_whoami(msg, _, from_known_sender, known_senders: Iterable):
|
||||||
|
if not from_known_sender:
|
||||||
|
msg.reply("You not logged in.")
|
||||||
|
return
|
||||||
|
for s in known_senders:
|
||||||
|
if s['hash'] == msg.sender:
|
||||||
|
msg.reply(f"Logged in as {s['nick']}.")
|
||||||
|
return
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
def handle_help(msg, _, __, ___):
|
||||||
msg.reply("""Supported commands:
|
msg.reply("""Supported commands:
|
||||||
/login [NICK] [PASSWORD] - Logs user in. Partyline messages will be sent.
|
/login [NICK] [PASSWORD] - Logs user in. Partyline messages will be sent.
|
||||||
/logout - Logs user out. Partyline messages will stop.
|
/logout - Logs user out. Partyline messages will stop.
|
||||||
|
/whoami - Tells you your nic if you're logged in.
|
||||||
/help - Displays this message.""")
|
/help - Displays this message.""")
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -95,6 +107,15 @@ def send_to(text: str, receiver_hashes: Iterable[str]):
|
||||||
bot.send(receiver, text)
|
bot.send(receiver, text)
|
||||||
|
|
||||||
|
|
||||||
|
COMMANDS = {
|
||||||
|
"/login": handle_login,
|
||||||
|
"/logout": handle_logout,
|
||||||
|
"/whoami": handle_whoami,
|
||||||
|
"/help": handle_help,
|
||||||
|
"/": handle_help
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@bot.received
|
@bot.received
|
||||||
def handle_msg(msg):
|
def handle_msg(msg):
|
||||||
r = Redis(host='localhost', port=6379, db=0)
|
r = Redis(host='localhost', port=6379, db=0)
|
||||||
|
|
@ -107,14 +128,9 @@ def handle_msg(msg):
|
||||||
known_senders, None)
|
known_senders, None)
|
||||||
from_known_sender = sender_info is not None
|
from_known_sender = sender_info is not None
|
||||||
assert isinstance(msg.content, str)
|
assert isinstance(msg.content, str)
|
||||||
if msg.content.startswith("/login"):
|
for cmd in COMMANDS:
|
||||||
return handle_login(msg, r, from_known_sender, known_senders)
|
if msg.content.startswith(cmd):
|
||||||
if msg.content.startswith("/logout"):
|
return COMMANDS[cmd](msg, r, from_known_sender, known_senders)
|
||||||
return handle_logout(msg, r, from_known_sender, known_senders)
|
|
||||||
if msg.content.startswith("/help"):
|
|
||||||
return handle_help(msg)
|
|
||||||
if msg.content.startswith("/"):
|
|
||||||
return handle_help(msg)
|
|
||||||
|
|
||||||
if not from_known_sender:
|
if not from_known_sender:
|
||||||
msg.reply("Please identify with `/login [NICK] [PASSWORD]`")
|
msg.reply("Please identify with `/login [NICK] [PASSWORD]`")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue