"""Tell a user something next time we see them."""
import dave.module
import dave.config
import pickle
@dave.module.help("Syntax: tell [user] [message]. Tell a user something when we next "
"see them")
@dave.module.command(["tell"], "([A-Za-z_\-\[\]\\^{}|`][A-Za-z0-9_\-\[\]\\^{}|`]*) (.*)")
@dave.module.ratelimit(1, 3)
def tell(bot, args, sender, source):
dave.config.redis.lpush("tell:{}".format(args[0].lower()), pickle.dumps({
"sender": sender,
"msg": args[1]
}))
bot.reply(source, sender, "I'll let {} know when they're back.".format(args[0]))
@dave.module.match(r"(.*)")
@dave.module.always_run()
def check_msgs(bot, args, sender, source):
msgs = dave.config.redis.lrange("tell:{}".format(sender.lower()), 0, -1)
if msgs and len(msgs):
bot.msg(sender, "You have messages waiting for you:")
for msg in msgs:
msg = pickle.loads(msg)
bot.msg(sender, "<{}> {}".format(msg["sender"], msg["msg"]))
dave.config.redis.delete("tell:{}".format(sender.lower()))