diff --git a/database.py b/database.py index 341b1d8..7b6889c 100644 --- a/database.py +++ b/database.py @@ -70,7 +70,7 @@ def get_userid(db, username): # Get the user ID cursor = db.cursor() - cursor.execute('SELECT id FROM users WHERE username = ?', (username,)) + cursor.execute('SELECT id FROM users WHERE username = ?;', (username,)) results = cursor.fetchall() # If no user was found, return None @@ -87,7 +87,7 @@ def check_password(db, userid, password): # Get the password and status cursor = db.cursor() - cursor.execute('SELECT password, status FROM users WHERE id = ?', (userid,)) + cursor.execute('SELECT password, status FROM users WHERE id = ?;', (userid,)) results = cursor.fetchall() # If no user of that name, fail @@ -107,7 +107,7 @@ def get_user_info(db, userid): """Returns a UserInfo object representing the data associated with a user If no user was found, returns None""" cursor = db.cursor() - cursor.execute('SELECT id, parent, status, username, email, comment FROM users WHERE id = ?', (userid,)) + cursor.execute('SELECT id, parent, status, username, email, comment FROM users WHERE id = ?;', (userid,)) results = cursor.fetchall() # If no user was found, return None @@ -152,8 +152,13 @@ def initialize_users(db, admin_user, admin_password): # ------------------------------------------------------------------ def list_boards(db): - # TODO: Implement this - ... + """Lists the boards that exist at the moment""" + cursor = db.cursor() + cursor.execute('SELECT name FROM boards;') + results = cursor.fetchall() + + # The results look like [('foo',), ('bar',), ('baz',)] + return [i[0] for i in results] def initialize_boards(db, boards): """Creates a table of boards diff --git a/generate_html.py b/generate_html.py index 2c967ee..7f663ec 100644 --- a/generate_html.py +++ b/generate_html.py @@ -3,6 +3,7 @@ import urllib.parse import bs4 import config +import database def generate_nav(*, soup): """Returns nav_tag""" @@ -10,7 +11,10 @@ def generate_nav(*, soup): nav_tag = soup.new_tag('nav') # TODO: Read these from the database - for board in ['a', 'b', 'his', 'g']: + with database.connect() as db: + boards = database.list_boards(db) + + for board in boards: url = config.url_prefix + '/' + urllib.parse.quote(board, safe = '') + '/' a_tag = soup.new_tag('a', href = url) a_tag.string = '/' + board + '/'