Advertisement
Guest User

Untitled

a guest
May 5th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.60 KB | None | 0 0
  1. import os
  2. import sqlite3
  3. from flask import (Flask, request, request,
  4.     session, g, redirect, url_for, abort, render_template, flash)
  5. import random
  6. import time
  7. import datetime
  8. import re
  9.  
  10.  
  11. app = Flask(__name__)
  12. app.config.from_object(__name__)
  13. app.static_folder = 'static'
  14.  
  15.  
  16. app.config.update(dict(
  17.     Database=os.path.join(app.root_path, 'reddit.db'),
  18.     SECRET_KEY='1755984224',
  19.     USERNAME='inqw',
  20.     PASSWORD=''
  21.     ))
  22. app.config.from_envvar('REDDIT_SETTINGS',silent=True)
  23.  
  24. def to_bool(string):
  25.     if re.search('[Tt]rue',string):
  26.         return True
  27.     else:
  28.         return False
  29.  
  30. def connect_db():
  31.     rv = sqlite3.connect(app.config['Database'])
  32.     rv.row_factory = sqlite3.Row
  33.     return rv
  34.  
  35. def get_db():
  36.     if not hasattr(g, 'sqlite_db'):
  37.         g.sqlite_db = connect_db()
  38.     return g.sqlite_db
  39.  
  40. @app.teardown_appcontext
  41. def close_db(error):
  42.     if hasattr(g, 'sqlite_db'):
  43.         g.sqlite_db.close()
  44.  
  45. def init_db():
  46.     db = get_db()
  47.     with app.open_resource('schema.sql',mode='r') as f:
  48.         db.cursor().executescript(f.read())
  49.     db.commit()
  50.  
  51. @app.cli.command('initdb')
  52. def initdb_command():
  53.     init_db()
  54.     print("Initialized database")
  55.  
  56. @app.route('/')
  57. @app.route('/user/<user>',methods=['GET'])
  58. def home(user=None):
  59.     logged_in = False
  60.     if user:
  61.         logged_in = True
  62.     return render_template('index.html',logged_in=True,user=user)
  63.  
  64. @app.route('/user/<user>/config',methods=['GET','POST'])
  65. def me(user=None):
  66.     if user:
  67.         db = get_db()
  68.         services = [bool(service) for service in db.execute('select * from myConfiguration where user=?',[user]).fetchone()][1:]
  69.     if request.method == 'POST':
  70.         tools = [request.form['uber'], request.form['newpost'], request.form['repost'],request.form['rehost']]
  71.         update = [[to_bool(s), tools.index(s)] for s in tools if services[tools.index(s)] != s and s != '']
  72.         for value in update:
  73.             services[value[1]] = value[0]
  74.         db.execute('update myConfiguration set uber=?,newpost=?,repost=?,rehost=? where user=?',[services[0], services[1], services[2],services[3], user])
  75.         db.commit()
  76.     return render_template('config.html',user=user, services=services)
  77.  
  78. @app.route('/login',methods=['GET','POST'])
  79. def login():
  80.     error = None
  81.     if request.method == 'POST':
  82.         db = get_db()
  83.         password = db.execute('select password from users where username=?',[request.form['username']]).fetchone()
  84.         try:
  85.             if password[0] == request.form['password']:
  86.                 return redirect(url_for('home', user=request.form['username']))
  87.         except:
  88.             pass
  89.     return render_template('login.html', error=error)
  90.  
  91. @app.route('/create',methods=['GET','POST'])
  92. def create(error=None):
  93.     if request.method == 'POST':
  94.         if request.form['createVerify'] == request.form['createPassword']:
  95.             db = get_db()
  96.             exists = db.execute('select password from users where username=?',[request.form['createUsername']]).fetchone()
  97.             if not exists:
  98.                 db.execute('insert into users values (?,?,?,?,?,?)', [request.form['createUsername'],request.form['createPassword'],time.mktime(datetime.datetime.now().timetuple()), 'None', False, False])
  99.                 db.execute('insert into myConfiguration values(?,?,?,?,?)',[request.form['createUsername'],False, False, False, False])
  100.                 db.commit()
  101.                 return redirect(url_for('home', user=request.form['createUsername']))
  102.             else:
  103.                 pass
  104.     return render_template('create.html')
  105.  
  106. @app.route('/admin')
  107. def show_entries():
  108.     db = get_db()
  109.     cur = db.execute('select * from users order by username')
  110.     users = cur.fetchall()
  111.     return render_template('admin.html',users=users)
  112.  
  113.  
  114. '''
  115.  
  116. @app.route('/logout')
  117. def logout():
  118.     session.pop('logged_in',None)
  119.     flash('You were logged out')
  120.     return redirect(url_for('show_entries'))
  121.  
  122.  
  123. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement