| |
|
|
| |
| ALPHABET = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" |
| BASE = len(ALPHABET) |
|
|
| |
| OFFSET = 14758923 |
|
|
| def encode_id(instance_id: int) -> str: |
| """Converts a database integer ID into a cool alphanumeric string.""" |
| num = instance_id + OFFSET |
| if num == 0: |
| return ALPHABET[0] |
| arr = [] |
| while num: |
| num, rem = divmod(num, BASE) |
| arr.append(ALPHABET[rem]) |
| arr.reverse() |
| return ''.join(arr) |
|
|
| def decode_id(code: str) -> int: |
| """Converts the alphanumeric string back into the database integer ID.""" |
| num = 0 |
| for char in code: |
| if char not in ALPHABET: |
| raise ValueError(f"Invalid character in code: {char}") |
| num = num * BASE + ALPHABET.index(char) |
| return num - OFFSET |
|
|