Enabled nagbot
This commit is contained in:
parent
fb84e3ddda
commit
fe058e2ca8
4
main.py
4
main.py
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue