Newer
Older
import sqlite3
from flask import redirect, abort, render_template
from html import escape #This is used to escape characters, if they are send in the url
def userProfile(request, cookieNotice, s):
try:
userID = s.loads(request.cookies.get('userID')) #Get the userid from the cookie
loginbar = "Hello " + s.loads(request.cookies.get('username')) + ' (<a href="/user/logout" style="color:white">logout</a>)' #This is the loginbar
except:
return redirect("/user/login") #If user is not logged in redirect him to the login page
with sqlite3.connect('db/urls.db') as conn:
cursor = conn.cursor()
res = cursor.execute('SELECT LONG_URL, SHORT_URL FROM WEB_URL WHERE USERNAME=?', [userID]) #Get all entries from the database, that are created by this user
response = '<table id="t01">\n<tr>\n<th>Long URL</th>\n<th>Short URL</th>\n<th>Views</th>\n<th>Action</th>\n</tr>\n' #This is the layout of the table
try:
entriesList = res.fetchall()
for entries in entriesList: #for every entrie in the database add a line to the table
cursor2 = conn.cursor()
try:
calls = str(cursor2.execute('SELECT CALLS FROM ANALYTICS WHERE SHORT_URL=?', [entries[1]]).fetchone()[0])
except:
calls = "0"
response = response + "<tr>\n<td>" + entries[0] + "</td>\n<td>" + entries[1] + '</td>\n<td>' + calls + '</td>\n<td><a id="red" href="/user/delete?link=' + escape(entries[1]) + '">delete</a> <a href="#" id="dialog-link" onclick="buttonListener(\'' + entries[1] + '\', this)">QR</a></tr>\n'
response = response + "</table>" #Close the table
if(len(entriesList) == 0): response = 'you have no shorten links.' #If user has no shorten links make this message
except:
print(Exception)
abort(500) #Shouldn't happen, 500 means internal server error
return render_template('editEntries.html', content=response, loginbar=loginbar, cookieNotice=cookieNotice) #Put the table and the login div inside the template and server it to the user