Enabled nagbot

This commit is contained in:
Jacob Henry 2018-11-20 21:33:11 -05:00
parent fb84e3ddda
commit fe058e2ca8
2 changed files with 16 additions and 4 deletions

View File

@ -9,6 +9,7 @@ import client_wrapper
import identifier
import job_commands
import management_commands
import periodicals
import scroll_util
import slack_util
import slavestothemachine
@ -49,6 +50,9 @@ def main() -> None:
# Add boozebot
# wrap.add_passive(periodicals.ItsTenPM())
# Add nagloop
wrap.add_passive(periodicals.RemindJobs())
event_loop = asyncio.get_event_loop()
event_loop.set_debug(True)
message_handling = wrap.respond_messages()

View File

@ -36,8 +36,8 @@ class ItsTenPM(slack_util.Passive):
class RemindJobs(slack_util.Passive):
async def run(self, slack: SlackClient) -> None:
while True:
# Get the end of the current day (Say, 9PM)
today_remind_time = datetime.now().replace(hour=22, minute=0, second=0)
# Get the end of the current day (Say, 10PM)
today_remind_time = datetime.now().replace(hour=22, minute=00, second=0)
# Get the current day of week
dow = ["Monday",
@ -77,15 +77,23 @@ class RemindJobs(slack_util.Passive):
assigns: List[house_management.JobAssignment] = [a for a in assigns if valid_filter(a)]
# Now, we want to nag each person. If we don't actually know who they are, so be it.
print("Nagging!")
for a in assigns:
# Get the relevant slack ids
assignee_ids = identifier.lookup_brother_userids(a.assignee)
# For each, send them a DM
success = False
for slack_id in assignee_ids:
dm_id = slack_util.im_channel_for_id(slack, slack_id)
msg = "Your job ({}) is currently not signed off. Don't forget!".format(a.job.pretty_fmt())
msg = "{}, you still need to do {}".format(a.assignee.name, a.job.pretty_fmt())
if dm_id:
success = True
slack_util.send_message(slack, msg, dm_id)
# Warn on failure
if not success:
print("Tried to nag {} but couldn't find their slack id".format(a.assignee.name))
# Take a break to ensure no double-shots
await asyncio.sleep(10)