From bd149f012e418d4f6ccd21a0857fe0ca056f7a67 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 22 Nov 2023 13:12:38 +1100 Subject: [PATCH] feat: Allow underscores in tribe names --- main.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index d03ae4f..6fb0657 100644 --- a/main.py +++ b/main.py @@ -68,7 +68,7 @@ def index(): tribes = db.get_tribes() tribesHTML = "" for tribe in tribes: - tribesHTML += "" + tribe + "
" + tribesHTML += "" + tribe.capitalize() + "
" if 'token' in request.cookies: @@ -337,7 +337,7 @@ def tribe_list(): tribes = db.get_tribes() tribesHTML = "" for tribe in tribes: - tribesHTML += "" + tribe + "
" + tribesHTML += "" + tribe.capitalize() + "
" # Add create link if user is logged in if 'token' in request.cookies: @@ -382,9 +382,11 @@ def create_tribe(): return resp tribe = request.form['tribe'].strip().lower() - if not re.match("^[a-z0-9]*$", tribe): - return error('Sorry tribe can only contain lowercase letters and numbers') - + if not re.match("^[a-z0-9_]*$", tribe): + return error('Sorry tribe can only contain lowercase letters, numbers and underscores') + if tribe.startswith("_") or tribe.endswith("_"): + return error('Sorry tribe can\'t start or end with an underscore') + if len(tribe) < 3: return error('Sorry tribe must be at least 3 characters long') if len(tribe) > 255: @@ -398,7 +400,7 @@ def create_tribe(): @app.route('/tribe/') def tribe(tribe): tribe = tribe.lower() - if not re.match("^[a-z0-9]*$", tribe): + if not re.match("^[a-z0-9_]*$", tribe): return error('Sorry we couldn\'t find that tribe') data = db.get_tribe_data_raw(tribe) @@ -435,7 +437,7 @@ def tribe(tribe): @app.route('/join_tribe/') def join_tribe(tribe): tribe = tribe.lower() - if not re.match("^[a-z0-9]*$", tribe): + if not re.match("^[a-z0-9_]*$", tribe): return error('Sorry we couldn\'t find that tribe') data = db.get_tribe_data_raw(tribe)