def update_series(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': ID = request.form['ID'] TITLE = request.form['TITLE'] STARTYEAR = request.form['STARTYEAR'] ENDYEAR = request.form['ENDYEAR'] SCORE = request.form['SCORE'] VOTES = request.form['VOTES'] PICTURE = request.form['PICTURE'] DESCRIPTION = request.form['DESCRIPTION'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() state = """UPDATE SERIES SET(TITLE, STARTYEAR, ENDYEAR, SCORE, VOTES,PICTURE, DESCRIPTION) = (%s,%s,%s,%s,%s,%s,%s) WHERE ID=%s """ cursor.execute(state, (TITLE, STARTYEAR, ENDYEAR, SCORE, VOTES, PICTURE, DESCRIPTION, ID)) connection.commit() return redirect('series') else: flash("PlEASE LOG IN") return redirect(url_for('page.login_page'))
def add_actor(): #checks if user is logged in if current_user.get_id() is not None: with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() if request.method == 'POST': NAME = request.form['NAME'] SURNAME = request.form['SURNAME'] GENDER = request.form['GENDER'] BIRTHDATE = request.form['BIRTHDATE'] COUNTRY = request.form['COUNTRY'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() query = """INSERT INTO ACTORS (NAME, SURNAME, GENDER, BIRTHDATE, COUNTRY) VALUES (%s, %s, %s, %s, %s)""" cursor.execute(query, (NAME, SURNAME, GENDER, BIRTHDATE, COUNTRY)) connection.commit() return redirect('actors') else: flash("Please log in to MovieShake") return redirect(url_for('page.login_page'))
def update_post(postid): newcomments = request.form['comment'] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """UPDATE POSTS SET COMMENTS =%s WHERE (POST_ID = %s)""" cursor.execute(query, (newcomments, postid)) connection.commit() flash("Your comment has been updated.") return redirect(url_for('page.profile_page'))
def deleteaccount(): current_userid = current_user.get_user_id() if current_userid is not None: with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() query = """DELETE FROM USERS WHERE (ID = %s)""" cursor.execute(query, current_userid) connection.commit() return redirect(url_for('page.home_page')) else: flash("Please log in to MovieShake.") return redirect(url_for('page.home_page'))
def series(): nums = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT * FROM SERIES ORDER BY ID""" cursor.execute(query) for num in cursor: nums.append(num) connection.commit() return render_template('series.html', nums=nums)
def oscars(): winners = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT * FROM OSCARS""" cursor.execute(query) for winner in cursor: winners.append(winner) connection.commit() return render_template('oscars.html', winners=winners)
def actors(): stars = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT * FROM ACTORS""" cursor.execute(query) for star in cursor: stars.append(star) connection.commit() return render_template('actors.html', stars=stars)
def nominees(): candidates = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT * FROM NOMINEES ORDER BY ID""" cursor.execute(query) for candidate in cursor: candidates.append(candidate) connection.commit() return render_template('nominees.html', candidates=candidates)
def delete_post(postid): with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT u.ID, m.MOVIEID, COMMENTS FROM USERS u INNER JOIN POSTS p ON (u.ID = p.USER_ID) INNER JOIN MOVIES m ON (m.MOVIEID = p.MOVIE_ID) WHERE (p.POST_ID = %s)""" cursor.execute(query, (postid, )) post = cursor.fetchone() post_to_delete = Post(post[0], post[1], post[2]) post_to_delete.delete_post_from_db() connection.commit() return redirect(url_for('page.profile_page'))
def delete_actor(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': ID = request.form['ID'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() query = """DELETE FROM ACTORS WHERE ID = '""" + ID + """' """ cursor.execute(query) connection.commit() return redirect('actors') else: flash("Please log in to MovieShake") return redirect(url_for('page.login_page'))
def delete_news(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': ID = request.form['ID'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() state = """DELETE FROM NEWS WHERE ID=%s """ cursor.execute(state, (ID)) connection.commit() return redirect('news') else: flash("PlEASE LOG IN") return redirect(url_for('page.login_page'))
def nominee_vote(nominee_ID): candidates = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """UPDATE NOMINEES SET VOTES = VOTES+1 WHERE ID = '""" + nominee_ID + """'""" cursor.execute(query) query = """SELECT * FROM NOMINEES ORDER BY VOTES DESC""" cursor.execute(query) for candidate in cursor: candidates.append(candidate) connection.commit() return render_template('nominee_vote.html', candidates=candidates)
def edit_profile(): if request.method == "GET": if current_user.get_id() is not None: return render_template('edit.html') else: flash("You're not logged in.") return redirect(url_for('page.login_page')) else: if current_user.get_id() is not None: new_username = request.form['username'] new_email = request.form['email'] new_password = request.form['password'] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = "SELECT ID FROM USERS WHERE (USERNAME = %s)" cursor.execute(query, (new_username, )) user1 = cursor.fetchone() query = "SELECT ID FROM USERS WHERE (EMAIL =%s)" cursor.execute(query, (new_email, )) user2 = cursor.fetchone() if user1 is not None or user2 is not None: if user1 is not None: flash('Please choose a unique Username') if user2 is not None: flash('Please choose a unique E-mail.') return redirect(url_for('page.edit_profile')) new_password_encrypted = pwd_context.encrypt(new_password) with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() query = """UPDATE USERS SET USERNAME = %s, EMAIL = %s, PASSWORD = %s WHERE USERNAME = %s;""" cursor.execute(query, (new_username, new_email, new_password_encrypted, current_user.username)) connection.commit() return redirect(url_for('page.home_page')) else: flash("You're not logged in.") return redirect(url_for('page.login_page'))
def add_comments(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': USER_NAME = request.form['USER_NAME'] SERIE_ID = request.form['SERIE_ID'] DESCRIPTION = request.form['DESCRIPTION'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() state = """INSERT INTO COMMENTS (USER_NAME,SERIE_ID,DESCRIPTION) VALUES(%s,%s,%s)""" cursor.execute(state, (USER_NAME, SERIE_ID, DESCRIPTION)) connection.commit() return redirect('series') else: flash("PlEASE LOG IN") return redirect(url_for('page.login_page'))
def profile_page(): if current_user.get_id() is not None: movies = [] lists = [] userid = current_user.get_user_id() with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT TITLE, YEAR, m.SCORE, VOTES, IMDB_URL, m.MOVIEID FROM MOVIES m INNER JOIN WATCHEDLIST w ON (m.MOVIEID = w.MOVIEID) WHERE (w.USERNAME = %s) """ cursor.execute(query, (current_user.username, )) for movie in cursor: movies.append(movie) query = """SELECT DISTINCT LIST_NAME FROM MOVIELIST WHERE (USER_ID = %s)""" cursor.execute(query, (userid, )) for list in cursor: lists.append(list[0]) followingusers = [] followingusers = current_user.get_following_users_by_userid() posts = [] posts = current_user.get_posts() connection.commit() usernames = [] usernames.append(current_user.username) return render_template('profile.html', lists=lists, movies=movies, posts=posts, followingusers=followingusers, username=usernames) else: flash("Please log in to MovieShake") return redirect(url_for('page.login_page'))
def oscaractor(): persons = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT NAME, SURNAME, GENDER, BIRTHDATE, COUNTRY, YEAR FROM ACTORS a INNER JOIN OSCARS o ON (((a.NAME = o.ACTRESS_NAME) AND (a.SURNAME = o.ACTRESS_SURNAME)) OR ((a.NAME = o.ACTOR_NAME) AND (a.SURNAME = o.ACTOR_SURNAME))) WHERE (((a.NAME = o.ACTRESS_NAME) AND (a.SURNAME = o.ACTRESS_SURNAME)) OR ((a.NAME = o.ACTOR_NAME) AND (a.SURNAME = o.ACTOR_SURNAME))) ORDER BY YEAR DESC""" cursor.execute(query) for person in cursor: persons.append(person) connection.commit() return render_template('oscaractor.html', persons=persons)
def series_comments(id): comments = [] nums = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT * FROM COMMENTS WHERE SERIE_ID=%s """ cursor.execute(query, (id)) for comment in cursor: comments.append(comment) query = """SELECT * FROM SERIES WHERE ID=%s """ cursor.execute(query, (id)) for num in cursor: nums.append(num) connection.commit() return render_template('comments.html', comments=comments, nums=nums)
def update_comments(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': ID = request.form['ID'] USER_NAME = request.form['USER_NAME'] SERIE_ID = request.form['SERIE_ID'] DESCRIPTION = request.form['DESCRIPTION'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() state = """UPDATE SERIES SET(USER_NAME, SERIE_ID, DESCRIPTION) = (%s,%s,%s) WHERE ID=%s """ cursor.execute(state, (USER_NAME, SERIE_ID, DESCRIPTION, ID)) connection.commit() return redirect('/series') else: flash("PlEASE LOG IN") return redirect(url_for('page.login_page'))
def add_news(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': TITLE = request.form['TITLE'] PICTURE = request.form['PICTURE'] DESCRIPTION = request.form['DESCRIPTION'] USER_NAME = request.form['USER_NAME'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() state = """INSERT INTO NEWS (TITLE,PICTURE,DESCRIPTION,USER_NAME) VALUES(%s,%s,%s,%s)""" cursor.execute(state, (TITLE, PICTURE, DESCRIPTION, USER_NAME)) connection.commit() return redirect('series') else: flash("PlEASE LOG IN") return redirect(url_for('page.login_page'))
def Show_list(listname): movies = [] listnames = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT MOVIEID, TITLE, YEAR, SCORE, VOTES, IMDB_URL FROM MOVIES m INNER JOIN MOVIELIST l ON (m.MOVIEID = l.MOVIE_ID) WHERE ((l.LIST_NAME = %s) AND (l.USER_ID = %s))""" user_id = current_user.get_user_id() cursor.execute(query, ( listname, user_id, )) for movie in cursor: movies.append(movie) connection.commit() listnames.append(listname) return render_template('movielist.html', movies=movies, listname=listnames)
def update_actor(): #checks if user is logged in if current_user.get_id() is not None: if request.method == 'POST': ID = request.form['ID'] new_NAME = request.form['N_NAME'] new_SURNAME = request.form['N_SURNAME'] new_GENDER = request.form['N_GENDER'] new_BIRTHDATE = request.form['N_BIRTHDATE'] new_COUNTRY = request.form['N_COUNTRY'] with dbapi2.connect(app.config['dsn']) as connection: cursor = connection.cursor() query = """UPDATE ACTORS SET( NAME, SURNAME, GENDER, BIRTHDATE, COUNTRY) = ( %s, %s, %s, %s, %s) WHERE ID = %s""" cursor.execute(query, (new_NAME, new_SURNAME, new_GENDER, new_BIRTHDATE, new_COUNTRY, ID)) connection.commit() return redirect('actors') else: flash("Please log in to MovieShake") return redirect(url_for('page.login_page'))
def UserList(): userid = current_user.get_user_id() users = [] with dbapi2._connect(current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT ID, USERNAME, EMAIL FROM USERS EXCEPT SELECT ID, USERNAME, EMAIL FROM USERS u INNER JOIN FOLLOWERS f ON (u.ID = f.FOLLOWED_USER_ID) WHERE (f.FOLLOWING_USER_ID = %s) """ cursor.execute(query, (userid, )) for user in cursor: if current_user.username == user[1]: continue else: users.append(user) connection.commit() return render_template('userlist.html', users=users)
def user_profiles(user_id): if current_user.get_id() is not None: if current_user.get_user_id()[0] == int(user_id): return redirect(url_for('page.profile_page')) else: with dbapi2._connect(app.config['dsn']) as connection: cursor = connection.cursor() query = "SELECT USERNAME FROM USERS WHERE (ID = %s)" cursor.execute(query, (user_id, )) usr = cursor.fetchone() user = User(usr[0], "", "") if user is not None: movies = [] lists = [] userid = user_id with dbapi2._connect( current_app.config['dsn']) as connection: cursor = connection.cursor() query = """SELECT TITLE, YEAR, m.SCORE, VOTES, IMDB_URL FROM MOVIES m INNER JOIN WATCHEDLIST w ON (m.MOVIEID = w.MOVIEID) WHERE (w.USERNAME = %s) """ cursor.execute(query, (user.username, )) for movie in cursor: movies.append(movie) query = """SELECT DISTINCT LIST_NAME FROM MOVIELIST WHERE (USER_ID = %s)""" cursor.execute(query, (userid, )) for list in cursor: lists.append(list[0]) followingusers = [] followingusers = user.get_following_users_by_userid() followedusers = [] followedusers = user.get_followed_users_by_userid() posts = [] posts = user.get_posts() connection.commit() currentuserid = current_user.get_user_id() return render_template('userprofiles.html', userid=user_id, username=user.username, lists=lists, movies=movies, posts=posts, followingusers=followingusers, currentuserid=currentuserid, followedusers=followedusers) else: flash("There is no such user.") return redirect(url_for('page.home_page')) else: flash("Please log in to MovieShake") return redirect(url_for('page.login_page'))