コード例 #1
0
ファイル: home.py プロジェクト: AndyLi23/EveryTop
def new():
    if g.user:
        db = get_db()
        info = db.execute('SELECT * FROM user WHERE id = ?',
                          (g.user['id'], )).fetchone()
        s, u = {}, {}
        for i in range(len(websites.keys())):
            if i < len(info['sites']) and info['sites'][i] == '1':
                s[list(websites.keys())[i]] = get_top(list(websites.keys())[i])
            else:
                u[list(websites.keys())[i]] = get_top(list(websites.keys())[i])
    else:
        s, u = websites, {}
    if request.method == 'POST':
        t = ['0'] * len(websites)
        cur = 0
        for i in websites.keys():
            try:
                request.form[i]
                t[cur] = '1'
            except:
                pass
            cur += 1
        db = get_db()
        db.execute('UPDATE user SET sites = ? WHERE id = ?',
                   ("".join(t), g.user['id']))
        db.commit()
        return redirect(url_for('index'))
    return render_template('home/new.html', s=s, u=u)
コード例 #2
0
def load_logged_in_user():
    user_id = session.get('user_id')

    if user_id is None:
        g.user = None
    else:
        g.user = get_db().execute('SELECT * FROM user WHERE id = ?',
                                  (user_id, )).fetchone()
コード例 #3
0
ファイル: home.py プロジェクト: AndyLi23/EveryTop
def reorder():
    if g.user:
        db = get_db()
        info = db.execute('SELECT * FROM user WHERE id = ?',
                          (g.user['id'], )).fetchone()
        s = []
        for i in range(len(websites.keys())):
            if i < len(info['sites']) and info['sites'][i] == '1':
                s.append(list(websites.keys())[i])
    return render_template('home/reorder.html', sites=s)
コード例 #4
0
ファイル: home.py プロジェクト: AndyLi23/EveryTop
def index():
    if g.user:
        db = get_db()
        info = db.execute('SELECT * FROM user WHERE id = ?',
                          (g.user['id'], )).fetchone()
        s = {}
        for i in range(len(websites.keys())):
            if i < len(info['sites']) and info['sites'][i] == '1':
                s[list(websites.keys())[i]] = get_top(list(websites.keys())[i])
        return render_template('home/index.html', sites=s)
    else:
        sites = {}
        for i in websites.keys():
            sites[i] = get_top(i)
        return render_template('home/index.html', sites=sites)
コード例 #5
0
def login():
    if request.method == 'POST':
        email = request.form['email']
        password = request.form['password']
        db = get_db()
        error = None
        user = db.execute('SELECT * FROM user WHERE email = ?',
                          (email, )).fetchone()

        if user is None:
            error = 'Incorrect email.'
        elif not check_password_hash(user['password'], password):
            error = 'Incorrect password.'

        if error is None:
            session.clear()
            session['user_id'] = user['id']
            return redirect(url_for('index'))

        flash(error)

    return render_template('auth/login.html')
コード例 #6
0
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        email = request.form['email']
        db = get_db()
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif not email:
            error = 'Email is required.'
        elif not check(email):
            error = 'Invalid email.'
        elif db.execute('SELECT id FROM user WHERE username = ?',
                        (username, )).fetchone() is not None:
            error = 'User {} is already registered.'.format(username)
        elif db.execute('SELECT id FROM user WHERE email = ?',
                        (email, )).fetchone() is not None:
            error = 'Email {} is already registered.'.format(email)

        if error is None:
            db.execute(
                'INSERT INTO user (email, username, password, sites) VALUES (?, ?, ?, ?)',
                (
                    email,
                    username,
                    generate_password_hash(password),
                    "1" * len(websites.keys()),
                ))
            db.commit()
            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')