Change constructor of score. Create new function to add score value from a string.
This commit is contained in:
+6
-2
@@ -46,9 +46,13 @@ class Category:
|
|||||||
category.time_record = data["time_record"]
|
category.time_record = data["time_record"]
|
||||||
for user, score in data["scores"].items():
|
for user, score in data["scores"].items():
|
||||||
if category.time_record:
|
if category.time_record:
|
||||||
category.add_score(ScoreTime(user, score))
|
score_obj: ScoreTime = ScoreTime(user)
|
||||||
|
score_obj.value = float(score)
|
||||||
|
category.add_score(score_obj)
|
||||||
else:
|
else:
|
||||||
category.add_score(Score(user, score))
|
score_obj: Score = Score(user)
|
||||||
|
score_obj.value = int(score)
|
||||||
|
category.add_score(score_obj)
|
||||||
|
|
||||||
return category
|
return category
|
||||||
|
|
||||||
|
|||||||
+25
-4
@@ -8,7 +8,7 @@ class Score:
|
|||||||
|
|
||||||
# no user setter, it should never change.
|
# no user setter, it should never change.
|
||||||
|
|
||||||
def __init__(self, user: str, value: int) -> None:
|
def __init__(self, user: str) -> None:
|
||||||
"""
|
"""
|
||||||
Default constructor for Score class.
|
Default constructor for Score class.
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ class Score:
|
|||||||
value (int): Score's value
|
value (int): Score's value
|
||||||
"""
|
"""
|
||||||
self._user: str = user
|
self._user: str = user
|
||||||
self._value: int = value
|
self._value: int = -1
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
"""
|
"""
|
||||||
@@ -67,6 +67,15 @@ class Score:
|
|||||||
"""
|
"""
|
||||||
return str(self._value)
|
return str(self._value)
|
||||||
|
|
||||||
|
def set_value_str(self, value: str) -> None:
|
||||||
|
"""
|
||||||
|
Setter for score value from string.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
value (str): int as a string
|
||||||
|
"""
|
||||||
|
self._value = int(value)
|
||||||
|
|
||||||
def to_str(self) -> str:
|
def to_str(self) -> str:
|
||||||
"""
|
"""
|
||||||
Returns Score object as a string.
|
Returns Score object as a string.
|
||||||
@@ -80,7 +89,7 @@ class Score:
|
|||||||
class ScoreTime(Score):
|
class ScoreTime(Score):
|
||||||
"""Class for a time based score. Inherits from Score."""
|
"""Class for a time based score. Inherits from Score."""
|
||||||
|
|
||||||
def __init__(self, user: str, score: float) -> None: # pylint: disable=super-init-not-called
|
def __init__(self, user: str) -> None: # pylint: disable=super-init-not-called
|
||||||
"""
|
"""
|
||||||
Default constructor for ScoreTime class.
|
Default constructor for ScoreTime class.
|
||||||
|
|
||||||
@@ -90,7 +99,7 @@ class ScoreTime(Score):
|
|||||||
"""
|
"""
|
||||||
# store time score as seconds.
|
# store time score as seconds.
|
||||||
self._user: str = user
|
self._user: str = user
|
||||||
self._score: float = score
|
self._score: float = -1.0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def value(self) -> float:
|
def value(self) -> float:
|
||||||
@@ -121,3 +130,15 @@ class ScoreTime(Score):
|
|||||||
"""
|
"""
|
||||||
milliseconds = round((self.value - int(self.value)) * 10)
|
milliseconds = round((self.value - int(self.value)) * 10)
|
||||||
return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(self.value))
|
return time.strftime(f"%-M:%S.{milliseconds}", time.gmtime(self.value))
|
||||||
|
|
||||||
|
def set_value_str(self, value: str) -> None:
|
||||||
|
"""
|
||||||
|
Setter for score value from a string.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
value (str): string representation of time
|
||||||
|
"""
|
||||||
|
if value.find(":"):
|
||||||
|
self._score = int(value.split(":")[0]) * 60 + float(value.split(":")[1])
|
||||||
|
else:
|
||||||
|
self._score = float(value)
|
||||||
|
|||||||
@@ -46,9 +46,11 @@ class VerificationView(nextcord.ui.View):
|
|||||||
submission_table = submission_guild.get_table(table)
|
submission_table = submission_guild.get_table(table)
|
||||||
submission_category = submission_table.get_category(category)
|
submission_category = submission_table.get_category(category)
|
||||||
if submission_category.time_record:
|
if submission_category.time_record:
|
||||||
submission_score: ScoreTime = ScoreTime(user, float(score))
|
submission_score: ScoreTime = ScoreTime(user)
|
||||||
|
submission_score.set_value_str(score)
|
||||||
else:
|
else:
|
||||||
submission_score: Score = Score(user, int(score))
|
submission_score: Score = Score(user)
|
||||||
|
submission_score.set_value_str(score)
|
||||||
|
|
||||||
await submit_score(
|
await submit_score(
|
||||||
interaction,
|
interaction,
|
||||||
|
|||||||
Reference in New Issue
Block a user