diff --git a/france/france_rsvp/codes.py b/france/france_rsvp/codes.py index e3759fb..fdaa0d6 100644 --- a/france/france_rsvp/codes.py +++ b/france/france_rsvp/codes.py @@ -11,6 +11,19 @@ assert len(ALPHABET) == 32 LENGTH = 4 +CORRECT = { + 'i': '1', + 'l': '1', + 'o': '0', +} + + +def correct_code(code): + code = code.lower() + fixed_code = ''.join(CORRECT.get(c, c) for c in code) + return fixed_code + + def list_errors(code): for place in range(LENGTH): for replacement in ALPHABET: diff --git a/france/france_rsvp/web.py b/france/france_rsvp/web.py index c6d892f..a2e38fa 100644 --- a/france/france_rsvp/web.py +++ b/france/france_rsvp/web.py @@ -2,6 +2,7 @@ from flask import Flask, render_template, request, url_for import logging from werkzeug.utils import redirect +from .codes import correct_code from .database import get_name_and_replies, record_reply @@ -18,7 +19,7 @@ def form(): 'code' in request.form and len(request.form['code']) == 4 ): - code = request.form['code'] + code = correct_code(request.form['code']) try: get_name_and_replies(code) except ValueError: