mirror of
https://github.com/Alexander-D-Karpov/akarpov
synced 2026-01-15 03:58:45 +03:00
19 lines
510 B
Python
19 lines
510 B
Python
import string
|
|
|
|
from redirect.settings import settings
|
|
|
|
URL_CHARACTERS = list(string.ascii_letters + string.digits + ";,:@&-_.!~*'()#")
|
|
SLUG_CUTOFF = settings.redirect_slug_cutoff
|
|
|
|
|
|
def slug_to_link_id(slug: str) -> int:
|
|
"""Converts given slug to an id of a link."""
|
|
link_id = 0
|
|
try:
|
|
for i, ch in enumerate(slug[:SLUG_CUTOFF - 1:-1]):
|
|
value = URL_CHARACTERS.index(ch)
|
|
link_id += value * len(URL_CHARACTERS) ** i
|
|
except ValueError:
|
|
pass
|
|
return link_id
|