Files
simple_sql_tg_bot/myenv/Lib/site-packages/aiogram/utils/token.py

43 lines
936 B
Python

from functools import lru_cache
class TokenValidationError(Exception):
pass
@lru_cache()
def validate_token(token: str) -> bool:
"""
Validate Telegram token
:param token:
:return:
"""
if not isinstance(token, str):
raise TokenValidationError(
f"Token is invalid! It must be 'str' type instead of {type(token)} type."
)
if any(x.isspace() for x in token):
message = "Token is invalid! It can't contains spaces."
raise TokenValidationError(message)
left, sep, right = token.partition(":")
if (not sep) or (not left.isdigit()) or (not right):
raise TokenValidationError("Token is invalid!")
return True
@lru_cache()
def extract_bot_id(token: str) -> int:
"""
Extract bot ID from Telegram token
:param token:
:return:
"""
validate_token(token)
raw_bot_id, *_ = token.split(":")
return int(raw_bot_id)