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

View File

@ -36,8 +36,8 @@ class ItsTenPM(slack_util.Passive):
class RemindJobs(slack_util.Passive): class RemindJobs(slack_util.Passive):
async def run(self, slack: SlackClient) -> None: async def run(self, slack: SlackClient) -> None:
while True: while True:
# Get the end of the current day (Say, 9PM) # Get the end of the current day (Say, 10PM)
today_remind_time = datetime.now().replace(hour=22, minute=0, second=0) today_remind_time = datetime.now().replace(hour=22, minute=00, second=0)
# Get the current day of week # Get the current day of week
dow = ["Monday", 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)] 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. # 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: for a in assigns:
# Get the relevant slack ids # Get the relevant slack ids
assignee_ids = identifier.lookup_brother_userids(a.assignee) assignee_ids = identifier.lookup_brother_userids(a.assignee)
# For each, send them a DM # For each, send them a DM
success = False
for slack_id in assignee_ids: for slack_id in assignee_ids:
dm_id = slack_util.im_channel_for_id(slack, slack_id) 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())
slack_util.send_message(slack, msg, dm_id) 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 # Take a break to ensure no double-shots
await asyncio.sleep(10) await asyncio.sleep(10)