try: from .lib.helpers import get_static_paths, get_content_text from .lib.classUser import User from .lib.classUwuCounter import UwuCounter from .lib.databaseMethods import get_table, get_count, update_count, get_users, get_users_list, get_all, check_password except: from lib.classUser import User from lib.helpers import get_static_paths, get_content_text from lib.classUwuCounter import UwuCounter from lib.databaseMethods import get_table, get_count, update_count, get_users, get_all, check_password from . import app from flask import Flask, render_template, redirect, url_for, request, flash from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user from math import ceil login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = "login" ''' @login_manager.user_loader def load_user(request): token = request.headers.get('Authorization') if(token is None): token = request.args.get('token') if(token is not None): username, password = token.split(':') # naive token user_entry = User.get(username) if(user_entry is not None): user = User(user_entry[0], user_entry[1]) if(user.password == password): return user return None ''' @login_manager.user_loader def load_user(request): return User.get(request) @app.route('/explore/', methods=['GET']) def explore_users_list(page): return render_template('explore/index.html', user_page_current=int(page), user_page_list=get_users_list(int(page)), user_pages_length=ceil(len(get_users())/10), static_paths=get_static_paths(), content_text=get_content_text()) @app.route('/explore', methods=['GET']) def explore_users(): return redirect('/explore/0') @app.route('/user//getCurval', methods=['GET']) def get_curval(username): error = '' if(request.method == 'GET'): try: new_count = User.get(username).count.curval update_count(username, new_count) return f'{new_count}' except Exception as e: error = f'{e}' return f'ERROR: {error}' @app.route('/user/', methods=['POST', 'GET']) def user_page(username): error = '' if(request.method == 'GET'): if(username in get_users()): return render_template('user/index.html', this_user=username, user_curval=f'{User.get(username).count.curval}', static_paths=get_static_paths(), content_text=get_content_text()) else: error = f'User doesn\'t exist.\n{username}\n{get_users()}' elif(request.method == 'POST'): try: User.get(username).count.increment() return f'{User.get(username).count.curval}' except Exception as e: error = f'{e}' return f'ERROR: {error}' @app.route('/home/getCurval', methods=['GET']) @login_required def home_get_curval(): error = '' if(request.method == 'GET'): try: new_count = User.get(current_user.id).count.curval update_count(current_user.id, new_count) return f'{new_count}' except Exception as e: error = f'{e}' return f'ERROR: {error}' @app.route('/home', methods=['GET']) @login_required def home(): return render_template('home/index.html', user_curval=str(User.get(current_user.id).count.curval), static_paths=get_static_paths(), content_text=get_content_text()) @app.route('/signup', methods=['GET', 'POST']) def signup(): error = 'Invalid method.' if(request.method == 'POST'): username = request.form['username'] password = request.form['password'] if(not username in get_users()): User.load_user(User(username, password)) #User.user_database[username] = (username, password, UwuCounter(0)) return redirect('/') else: flash('It looks like a user already exists with that name.') return redirect('/signup') elif(request.method == 'GET'): return render_template('signup/index.html', static_paths=get_static_paths(), content_text=get_content_text()) return f'ERROR: {error}' @app.route('/login', methods=['GET', 'POST']) def login(): error = 'Invalid method.' if(request.method == 'POST'): username = request.form['username'] password = request.form['password'] if(username in get_users() and check_password(username, password)): userClass = User.get(username) login_user(userClass) return redirect('home') else: error = 'Invalid credentials.' elif(request.method == 'GET'): return render_template('login/index.html', static_paths=get_static_paths(), content_text=get_content_text()) return f'ERROR: {error}' @app.route('/logout', methods=['GET', 'POST']) def logout(): error = 'Invalid method.' if(request.method == 'GET'): logout_user() return redirect('/') return f'ERROR: {error}' @app.route('/', methods=['GET']) def hello(): if(not current_user.is_active): return render_template('homepage.html', static_paths=get_static_paths(), content_text=get_content_text()) else: return redirect('home') def main(): app.run(host='0.0.0.0', debug=True)