Skip to content

Commit dd28392

Browse files
committed
improve snowflake/message id validation
fixes valid snowflake id not being detected as being valid
1 parent 77150c8 commit dd28392

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

classes/QuestionData.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,17 @@ def message_id(self) -> str:
7070

7171
@message_id.setter
7272
def message_id(self, value: str):
73-
if len(value) == 18:
74-
self.__message_id = value
73+
try:
74+
# check if snowflake can be converted to a valid datetime
75+
# https://discord.com/developers/docs/reference#snowflakes
76+
datetime.datetime.fromtimestamp(
77+
((int(value) >> 22) + 1420070400000) / 1000
78+
)
79+
except OSError:
80+
raise ValueError(
81+
"message id aka snowflake cannot be converted to a valid datetime")
7582
else:
76-
raise ValueError("message id aka snowflake is of length 18!")
83+
self.__message_id = value
7784

7885
def diff(self, other: "QuestionData") -> str:
7986
"""

0 commit comments

Comments
 (0)