Files
flask_url_shortener/tiny0/token.py
T

21 lines
534 B
Python
Raw Normal View History

from tiny0 import db
2020-07-20 16:00:36 +00:00
from tiny0.models import URL
2020-07-18 13:10:03 +00:00
from secrets import choice
2020-07-20 16:00:36 +00:00
# The characters used to generate the token
token_characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz_-"
2020-07-18 13:10:03 +00:00
2020-07-20 16:00:36 +00:00
def gen_valid_token():
while True:
# Generate a token
token = "".join(choice(token_characters) for i in range(6))
2020-07-20 16:00:36 +00:00
# If the token does not exists in the database
if not db.session.query(db.session.query(URL).filter_by(token=token).exists()).scalar():
2020-07-20 16:00:36 +00:00
# Break the loop
break
# Return the token
return token
2020-07-18 13:10:03 +00:00