Пример #1
0
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'))
Пример #2
0
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'))
Пример #3
0
def feed():
    current_userid = current_user.get_user_id()[0]
    with dbapi2._connect(app.config['dsn']) as connection:
        cursor = connection.cursor()

        query = """SELECT u.USERNAME FROM USERS u
                        INNER JOIN FOLLOWERS f ON (u.ID = f.FOLLOWED_USER_ID)
                        WHERE(FOLLOWING_USER_ID = %s)"""

        cursor.execute(query, (current_userid, ))

        followings = []
        for following in cursor:
            followings.append(following[0])

        posts = []
        for followed in followings:
            query = """SELECT u.ID, u.USERNAME, m.IMDB_URL, m.TITLE, p.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 (USERNAME = %s)

                        ORDER BY p.POST_ID DESC"""

            cursor.execute(query, (followed, ))
            for post in cursor:
                posts.append(post[0:5])

    return render_template('feed.html', posts=posts)
Пример #4
0
def signup():
    if request.method == "POST":
        username = request.form['username']
        email = request.form['email']
        password0 = 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, (username, ))
            user1 = cursor.fetchone()
            query = "SELECT ID FROM USERS WHERE (EMAIL =%s)"
            cursor.execute(query, (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.signup'))
            else:
                password = pwd_context.encrypt(password0)
                newuser = User(username, email, password)
                app.userlist.add_user(newuser)

                if login_user(newuser):
                    flash("Welcome, " + current_user.username)
                else:
                    flash("A problem occured.")

                return render_template('home.html')
    else:
        return render_template('signup.html')
Пример #5
0
def login_page():

    if request.method == "POST":

        if current_user.get_id() is not None:
            flash('You are already logged in MovieShake as ' +
                  current_user.username)
            return redirect(url_for('page.home_page'))
        else:

            username = request.form['uname']
            passwordNotEncrypted = request.form['pass']

            if app.userlist.verify(username, passwordNotEncrypted) is not 0:
                flash('Please check your user name and password')
                return redirect(url_for('page.login_page'))
            else:
                with dbapi2._connect(app.config['dsn']) as connection:
                    cursor = connection.cursor()
                    query = "SELECT EMAIL FROM USERS WHERE (USERNAME = %s)"
                    cursor.execute(query, (username, ))
                    email = cursor.fetchone()

                userToLogin = User(username, email, passwordNotEncrypted)

                if login_user(userToLogin):
                    flash("Welcome, " + current_user.username)
                else:
                    flash("A problem occured, please try again.")

                return redirect(url_for('page.home_page'))

    else:
        return render_template('login.html')
Пример #6
0
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'))
Пример #7
0
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'))
Пример #8
0
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'))
Пример #9
0
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)
Пример #10
0
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)
Пример #11
0
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)
Пример #12
0
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'))
Пример #13
0
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)
Пример #14
0
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'))
Пример #15
0
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'))
Пример #16
0
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)
Пример #17
0
def search_users():

    if current_user.get_id() is None:
        flash("Please log in to MovieShake.")
        return redirect(url_for('page.login_page'))
    else:
        username_to_search = request.form['search_uname']
        with dbapi2._connect(current_app.config['dsn']) as connection:
            cursor = connection.cursor()
            query = "SELECT ID FROM USERS WHERE (USERNAME = %s)"
            cursor.execute(query, (username_to_search, ))
            userid = cursor.fetchone()
        if userid is not None:
            return redirect(url_for('page.user_profiles', user_id=userid[0]))
        else:
            flash("We could not find " + username_to_search +
                  ". He/She might be missing :)")
            return redirect(url_for('page.home_page'))
Пример #18
0
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)
Пример #19
0
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'))
Пример #20
0
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'))
Пример #21
0
def home_page_1():
    if current_user.get_id() is None:
        return render_template('home2.html')
    else:
        current_userid = current_user.get_user_id()[0]
        lists = []

        with dbapi2._connect(current_app.config['dsn']) as connection:
            cursor = connection.cursor()
            query = """SELECT DISTINCT m.LIST_NAME, m.USER_ID, u.USERNAME FROM MOVIELIST m
                        INNER JOIN FOLLOWERS f ON (m.USER_ID = f.FOLLOWED_USER_ID)
                        INNER JOIN USERS u ON(u.ID = m.USER_ID)
                        WHERE (f.FOLLOWING_USER_ID = %s)"""

            cursor.execute(query, (current_userid, ))

            for list in cursor:
                lists.append(list[0:3])

            query = """SELECT u.USERNAME FROM USERS u
                        INNER JOIN FOLLOWERS f ON (u.ID = f.FOLLOWED_USER_ID)
                        WHERE(FOLLOWING_USER_ID = %s)"""

            cursor.execute(query, (current_userid, ))

            followings = []
            for following in cursor:
                followings.append(following[0])

            watcheds = []
            for followed in followings:
                query = """SELECT w.USERNAME, m.TITLE, m.IMDB_URL, w.SCORE FROM WATCHEDLIST w
                        INNER JOIN USERS u ON (u.USERNAME = w.USERNAME)
                        INNER JOIN MOVIES m ON (m.MOVIEID = w.MOVIEID)
                        WHERE (w.USERNAME = %s)
                        ORDER BY w.MOVIEID DESC"""

                cursor.execute(query, (followed, ))
                for watched in cursor:
                    watcheds.append(watched[0:4])

        return render_template('home.html', lists=lists, watcheds=watcheds)
Пример #22
0
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'))
Пример #23
0
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'))
Пример #24
0
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)
Пример #25
0
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)
Пример #26
0
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)
Пример #27
0
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'))
Пример #28
0
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'))