Misc. updates.

This commit is contained in:
arkerekon 2023-01-10 09:10:47 -05:00 committed by Reily Siegel
parent e813a5d72d
commit e3321000cb
Signed by untrusted user: 1114
GPG Key ID: 508A5AD0A50F88AF
19 changed files with 3375 additions and 3303 deletions

9
Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM python:3.8-slim
WORKDIR /app
COPY . .
RUN pip3 install --user -r dependencies.txt
CMD python3 -u main.py

View File

@ -1,4 +1,7 @@
slackclient
slackclient==1.3.2
python-Levenshtein
fuzzywuzzy
httplib2
aiohttp
google-api-python-client
oauth2client

0
maifest.scm Normal file
View File

View File

@ -35,6 +35,7 @@ def main() -> None:
# Add job management
wrap.add_hook(job_commands.signoff_hook)
wrap.add_hook(job_commands.undo_hook)
wrap.add_hook(job_commands.late_hook)
wrap.add_hook(job_commands.reset_hook)
wrap.add_hook(job_commands.nag_hook)
@ -81,7 +82,6 @@ async def help_callback(event: slack_util.Event, match: Match) -> None:
"marklate John Doe" : Same as above, but to mark a job as being completed but having been done late.
"reassign John Doe -> James Deer" : Reassign a house job.
"undo signoff John Doe" : Marks a brother's house job as incomplete. Useful if you fucked up.
"nagjobs day" : Notify in general the house jobs for the week.
"reset signoffs" : Clear points for the week, and undo all signoffs. Not frequently useful, admin only.
"refresh points" : Updates house job / signoff points for the week, after manual edits to the sheet. Admin only.
"help" : You're reading it. This is all it does. What do you want from me?
@ -93,6 +93,8 @@ async def help_callback(event: slack_util.Event, match: Match) -> None:
Github is https://github.com/TheVillageIdiot2/waitonbot
Man in charge is Jacob Henry, but nothing lasts forever.
Edit January 2023: Patched by Andrew Kerekon, 1126. Contact arkerekon@wpi.edu if anything breaks and I'll do my best to fix it!
"""))
# Do not let my efforts fall to waste. Its a pitious legacy but its something, at least, to maybe tide the
# unending flow of work for poor Niko.

View File

@ -211,7 +211,7 @@ async def export_assignments(assigns: List[Optional[JobAssignment]]) -> None:
google_api.set_sheet_range(SHEET_ID, job_range, rows)
async def import_points() -> (List[str], List[PointStatus]):
async def import_points():
# Figure out how many things there are in a point status
field_count = len(dataclasses.fields(PointStatus))

View File

@ -9,7 +9,7 @@ from plugins import identifier, house_management, scroll_util
import client
import slack_util
SHEET_ID = "1lPj9GjB00BuIq9GelOWh5GmiGsheLlowPnHLnWBvMOM"
SHEET_ID = "1f9p4H7TWPm8rAM4v_qr2Vc6lBiFNEmR-quTY9UtxEBI"
MIN_RATIO = 80.0
@ -153,6 +153,7 @@ async def _mod_jobs(event: slack_util.Event,
async def signoff_callback(event: slack_util.Event, match: Match) -> None:
verb = slack_util.VerboseWrapper(event)
print("Receving a signoff request!!!")
# Find out who we are trying to sign off is
signee_name = match.group(1)
signee = await verb(scroll_util.find_by_name(signee_name, MIN_RATIO))
@ -181,6 +182,7 @@ async def signoff_callback(event: slack_util.Event, match: Match) -> None:
async def undo_callback(event: slack_util.Event, match: Match) -> None:
verb = slack_util.VerboseWrapper(event)
print("Receving an unsignoff request!!!")
# Find out who we are trying to sign off is
signee_name = match.group(1)
signee = await verb(scroll_util.find_by_name(signee_name, MIN_RATIO))
@ -199,9 +201,7 @@ async def undo_callback(event: slack_util.Event, match: Match) -> None:
# Say we did it wooo!
client.get_slack().reply(event, "Undid signoff of {} for {}".format(context.assign.assignee.name,
context.assign.job.name))
await alert_user(context.assign.assignee, "{} undid your signoff off for {}.\n"
"Must have been a mistake".format(context.assign.signer.name,
context.assign.job.pretty_fmt()))
await alert_user(context.assign.assignee, "{} undid your signoff off for {}.\n")
# Fire it off
await _mod_jobs(event, scorer, modifier)
@ -302,9 +302,13 @@ async def reset_callback(event: slack_util.Event, match: Match) -> None:
# noinspection PyUnusedLocal
async def refresh_callback(event: slack_util.Event, match: Match) -> None:
print("Received request to reset points")
headers, points = await house_management.import_points()
print("Received request to reset points 1")
house_management.apply_house_points(points, await house_management.import_assignments())
print("Received request to reset points 2")
house_management.export_points(headers, points)
print("Received request to reset points 3")
client.get_slack().reply(event, "Force updated point values")

View File

@ -162,6 +162,7 @@ class TestPassive(hooks.Passive):
Stupid shit
"""
async def run(self) -> None:
lifespan = 60
post_interval = 60
@ -226,5 +227,6 @@ class TestPassive(hooks.Passive):
make_interactive_msg()
await asyncio.sleep(post_interval)
def __init__(self):
pass

View File

@ -824,3 +824,55 @@ scroll~name
1120~Sam Bello
1121~Chris Lee
1122~Marko Vila
1126~Andrew Kerekon
1127~Mitchell Decelles
1128~Roman Bolshakov
1129~Michael Zeolla
1140~Matthew Folenta
1141~Jonathan Coco
1142~Cameron Shelley
1144~Sean Foody
1145~Conor Dolan
1146~Ryan Saklad
1147~Richard Curtis
1148~Tim Ryan
1149~John Robinson
1150~Shawn Finnigan
1151~Yasar Idikut
1152~Drew Silvernail
1154~Matthew Lund
1155~Sam David
1156~Dimitry Blazy
1157~Gabe Ward
1158~Zev Lieberman
1159~Matt Adam
1160~Jacob Reiss
1161~Edward Stump
1162~Christian Davis
1164~Connor Wirsing
1165~Ezra Yohay
1166~Jack Weinstein
1167~Stephen Fanning
1168~Spencer Harding
9999~Christopher Warneck
9999~Gavin Burkhardt
9999~Ryan Mulcahy
9999~Jace Howhannesian
9999~Robi Gyurcsan
9999~Colin McGinty
9999~Rhys Forster
9999~Charles Logman
9999~Daniel Baranov
9999~Alexander Demirs
9999~Noah Newton
9999~Skyler Wiernick
9999~Michael Monda
9999~Nate Ewell
9999~Spencer Smith
9999~Aaron Olsen
9999~Lorcan Doull
9999~Mark Caleca
9999~Thor Hammer
9999~Samuel Jasmin
9999~Ethan Koch
9999~Istan Slamet