diff --git a/mocha_server.py b/mocha_server.py index 7b3b3a3..8b7c581 100755 --- a/mocha_server.py +++ b/mocha_server.py @@ -183,7 +183,23 @@ def get_avatar(user_id): output = cursor.fetchall() output = json.dumps([dict(row) for row in output]) - conn.commit() + conn.close() + + if output == '[]': + output = None + + return output + + +def fetch_random_user(): + conn = sqlite3.connect(DATABASE) + conn.row_factory = sqlite3.Row + cursor = conn.cursor() + cursor.execute( + 'SELECT user_id, username, score FROM users ORDER BY RANDOM() LIMIT 1') + + output = cursor.fetchall() + output = json.dumps([dict(row) for row in output]) conn.close() if output == '[]': @@ -203,9 +219,12 @@ def process_request(uri): - /mocha/update/{user_id}/{score} - /mocha/avatar/{user_id} Get user's avatar - /mocha/avatar/{user_id}/{avatar} Set user's avatar + - /mocha/random Returns a random user ''' parts = uri.split('/')[1:] assert parts[0] == 'mocha' + if len(parts) < 2: + return None output = None @@ -225,6 +244,8 @@ def process_request(uri): output = set_avatar(parts[2], parts[3]) else: output = get_avatar(parts[2]) + elif parts[1] == 'random': + output = fetch_random_user() else: output = None @@ -253,6 +274,6 @@ def application(environ, start_response): if __name__ == '__main__': - print(process_request('/mocha/avatar/1')) + print(fetch_random_user()) # vim: tabstop=4 shiftwidth=4 softtabstop=4 expandtab