aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar wookie184 <[email protected]>2022-10-19 11:52:38 +0100
committerGravatar wookie184 <[email protected]>2022-10-19 11:52:38 +0100
commit2419014605df1478906e3fbe115948f0a6de6af9 (patch)
tree9619b1e5e9e0cc8f38b6a0e8e1a0bdd8352731ea
parentMerge branch 'main' into update-autoreview-system (diff)
Calculate 'now' once to ensure it is constant for scoring nominations
-rw-r--r--bot/exts/recruitment/talentpool/_review.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/bot/exts/recruitment/talentpool/_review.py b/bot/exts/recruitment/talentpool/_review.py
index 2d5cc7ca3..e3ac1086d 100644
--- a/bot/exts/recruitment/talentpool/_review.py
+++ b/bot/exts/recruitment/talentpool/_review.py
@@ -119,9 +119,11 @@ class Reviewer:
(more nominations = higher priority).
For users with equal priority the oldest nomination will be reviewed first.
"""
+ now = datetime.now(timezone.utc)
+
possible = []
for user_id, user_data in self._pool.cache.items():
- time_since_nomination = datetime.now(timezone.utc) - isoparse(user_data["inserted_at"])
+ time_since_nomination = now - isoparse(user_data["inserted_at"])
if (
not user_data["reviewed"]
and time_since_nomination > MIN_NOMINATION_TIME
@@ -136,12 +138,12 @@ class Reviewer:
max_entries = max(len(x[1]["entries"]) for x in possible)
def sort_key(nomination: dict) -> float:
- return self.score_nomination(nomination[1], oldest_date, max_entries)
+ return self.score_nomination(nomination[1], oldest_date, now, max_entries)
return max(possible, key=sort_key)[0]
@staticmethod
- def score_nomination(nomination: dict, oldest_date: datetime, max_entries: int) -> float:
+ def score_nomination(nomination: dict, oldest_date: datetime, now: datetime, max_entries: int) -> float:
"""
Scores a nomination based on age and number of nomination entries.
@@ -151,7 +153,6 @@ class Reviewer:
entries_score = num_entries / max_entries
nomination_date = isoparse(nomination["inserted_at"])
- now = datetime.now(timezone.utc)
age_score = (nomination_date - now) / (oldest_date - now)
return entries_score * REVIEW_SCORE_WEIGHT + age_score