Продолжение работы над Crypto
This commit is contained in:
@@ -25,6 +25,9 @@ class Crypto:
|
||||
DEFAULT_PIN_CODE_ALPHABET = "0123456789"
|
||||
""" Алфавит PIN-кода по умолчанию """
|
||||
|
||||
DEFAULT_SLUG_LENGTH = 8
|
||||
""" Длина slug по умолчанию """
|
||||
|
||||
@classmethod
|
||||
def gen_token(cls, length: int = DEFAULT_TOKEN_LENGTH) -> str:
|
||||
"""
|
||||
@@ -49,3 +52,19 @@ class Crypto:
|
||||
"""
|
||||
|
||||
return "".join(secrets.choice(alphabet) for _ in range(length))
|
||||
|
||||
@classmethod
|
||||
def gen_slug(cls, prefix: str, length: int = DEFAULT_SLUG_LENGTH):
|
||||
"""
|
||||
Генерирует случайный slug
|
||||
|
||||
:param prefix: Префикс slug
|
||||
:param length: Длина slug
|
||||
:return: Сгенерированный slug
|
||||
"""
|
||||
|
||||
l = length - len(prefix)
|
||||
if l <= 0:
|
||||
return prefix
|
||||
|
||||
return prefix + cls.gen_token(l)
|
||||
|
||||
Reference in New Issue
Block a user