Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sqlite3
- from flask import (Flask, request, request,
- session, g, redirect, url_for, abort, render_template, flash)
- import random
- import time
- import datetime
- import re
- app = Flask(__name__)
- app.config.from_object(__name__)
- app.static_folder = 'static'
- app.config.update(dict(
- Database=os.path.join(app.root_path, 'reddit.db'),
- SECRET_KEY='1755984224',
- USERNAME='inqw',
- PASSWORD=''
- ))
- app.config.from_envvar('REDDIT_SETTINGS',silent=True)
- def to_bool(string):
- if re.search('[Tt]rue',string):
- return True
- else:
- return False
- def connect_db():
- rv = sqlite3.connect(app.config['Database'])
- rv.row_factory = sqlite3.Row
- return rv
- def get_db():
- if not hasattr(g, 'sqlite_db'):
- g.sqlite_db = connect_db()
- return g.sqlite_db
- @app.teardown_appcontext
- def close_db(error):
- if hasattr(g, 'sqlite_db'):
- g.sqlite_db.close()
- def init_db():
- db = get_db()
- with app.open_resource('schema.sql',mode='r') as f:
- db.cursor().executescript(f.read())
- db.commit()
- @app.cli.command('initdb')
- def initdb_command():
- init_db()
- print("Initialized database")
- @app.route('/')
- @app.route('/user/<user>',methods=['GET'])
- def home(user=None):
- logged_in = False
- if user:
- logged_in = True
- return render_template('index.html',logged_in=True,user=user)
- @app.route('/user/<user>/config',methods=['GET','POST'])
- def me(user=None):
- if user:
- db = get_db()
- services = [bool(service) for service in db.execute('select * from myConfiguration where user=?',[user]).fetchone()][1:]
- if request.method == 'POST':
- tools = [request.form['uber'], request.form['newpost'], request.form['repost'],request.form['rehost']]
- update = [[to_bool(s), tools.index(s)] for s in tools if services[tools.index(s)] != s and s != '']
- for value in update:
- services[value[1]] = value[0]
- db.execute('update myConfiguration set uber=?,newpost=?,repost=?,rehost=? where user=?',[services[0], services[1], services[2],services[3], user])
- db.commit()
- return render_template('config.html',user=user, services=services)
- @app.route('/login',methods=['GET','POST'])
- def login():
- error = None
- if request.method == 'POST':
- db = get_db()
- password = db.execute('select password from users where username=?',[request.form['username']]).fetchone()
- try:
- if password[0] == request.form['password']:
- return redirect(url_for('home', user=request.form['username']))
- except:
- pass
- return render_template('login.html', error=error)
- @app.route('/create',methods=['GET','POST'])
- def create(error=None):
- if request.method == 'POST':
- if request.form['createVerify'] == request.form['createPassword']:
- db = get_db()
- exists = db.execute('select password from users where username=?',[request.form['createUsername']]).fetchone()
- if not exists:
- db.execute('insert into users values (?,?,?,?,?,?)', [request.form['createUsername'],request.form['createPassword'],time.mktime(datetime.datetime.now().timetuple()), 'None', False, False])
- db.execute('insert into myConfiguration values(?,?,?,?,?)',[request.form['createUsername'],False, False, False, False])
- db.commit()
- return redirect(url_for('home', user=request.form['createUsername']))
- else:
- pass
- return render_template('create.html')
- @app.route('/admin')
- def show_entries():
- db = get_db()
- cur = db.execute('select * from users order by username')
- users = cur.fetchall()
- return render_template('admin.html',users=users)
- '''
- @app.route('/logout')
- def logout():
- session.pop('logged_in',None)
- flash('You were logged out')
- return redirect(url_for('show_entries'))
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement