Exemple #1
0
 def decorated_function(request, user, *args, **kwargs):
     with db_session(strict=False):
         watchlist = Watchlist.select(
             lambda w: w.user.id == user.id).first()
         if not watchlist:
             user = User.get(id=user.id)
             watchlist = Watchlist(user=user, is_default=True)
         watchlist.movie_items.load()
     return f(request, user, watchlist, *args, **kwargs)
Exemple #2
0
    def put(self):
        updated_watchlists = json.loads(request.data).get("data", None)
        if updated_watchlists == None:
            raise Exception("No data sent")

        user = User.objects.first()
        new_watchlists = []

        for old_watchlist in user.watchlists:
            new_watchlist = next(
                (item for item in updated_watchlists
                 if item["id"] == str(old_watchlist.id)),
                None,
            )
            if new_watchlist != None:
                new_watchlists.append(
                    Watchlist(
                        name=new_watchlist["name"],
                        tickers=old_watchlist.tickers,
                        columns=old_watchlist.columns,
                        id=old_watchlist.id,
                        date_created=old_watchlist.date_created,
                    ))

        user.watchlists = new_watchlists
        user.save()

        return updated_watchlists
Exemple #3
0
async def remove(request, user, watchlist, movie_id):
    logger.debug(movie_id)
    with db_session():
        watchlist = Watchlist.get(id=watchlist.id)
        MovieItem.select(lambda m: m.imdb_id == movie_id and m.watchlist.id ==
                         watchlist.id).delete()
    return response.empty()
def select(id):
    sql = "SELECT * FROM films WHERE id = %s"
    values  = [id]
    result  = run_sql(sql, values)[0]
    user = user_repository.select(result['user_id'])
    film = film_repository.select(result['film_id'])
    watchlist_item = Watchlist(user, film, result['id'])
    return watchlist_item
Exemple #5
0
async def add(request, user, watchlist, movie_id):
    logger.debug(movie_id)
    if not is_in_default_watchlist(movie_id, user):
        with db_session():
            watchlist = Watchlist.get(id=watchlist.id)
            item = MovieItem(imdb_id=movie_id,
                             date=datetime.now(),
                             watchlist=watchlist)
    return response.empty()
def select_all():
    watchlist_list = []

    sql = "SELECT * FROM watchlist"
    results = run_sql(sql)

    for row in results:
        user = user_repository.select(row['user_id'])
        film = film_repository.select(row['film_id'])
        watchlist = Watchlist(user, film, row['id'])
        watchlist_list.append(watchlist)
    return watchlist_list
Exemple #7
0
    def post(self):
        new_watchlist = json.loads(request.data)
        if new_watchlist == None:
            raise Exception("No data sent")

        user = User.objects.first()
        watchlist = Watchlist(
            name=new_watchlist["name"],
            tickers=new_watchlist["tickers"],
            columns=new_watchlist["columns"],
        )
        user.watchlists.append(watchlist)
        user.save()
        return [watchlists_to_json(user.watchlists), str(watchlist.id)]
Exemple #8
0
async def seen(request, user, watchlist, movie_id):
    logger.debug(movie_id)
    with db_session():
        # TODO: Catche error if does not exist
        watchlist = Watchlist.get(id=watchlist.id)
        user = User.get(id=user.id)
        MovieItem.select(lambda m: m.imdb_id == movie_id and m.watchlist.id ==
                         watchlist.id).delete()
        date_string = request.args.get("date", None)
        if date_string:
            date = datetime.strptime(date_string, "%Y-%m-%d")
        else:
            date = datetime.now()
        movie = MovieItem(imdb_id=movie_id, date=date, user=user)

    return response.empty()
def add_to_watchlist(id):
    user = user_repository.select(request.form['user_id'])
    film = film_repository.select(request.form['film_id'])
    film_to_list = Watchlist(user, film)
    watchlist_repository.save(film_to_list)
    return redirect('/watchlist')
Exemple #10
0
def is_in_default_watchlist(imdb_id, user):
    return Watchlist.select(
        lambda w: imdb_id in w.movie_items.imdb_id and w.is_default and w.user.
        id == user.id).first() != None
    "chain-smoking Chinese grandma goes all in at the casino, landing herself on the wrong side of luck - and in the middle of a gang war."
)
film_repository.save(film5)

film6 = Film(
    "Mank", 5, "*****", "Drama",
    "Follows screenwriter Herman J. Mankiewicz's tumultuous development of Orson Welles' iconic masterpiece Citizen Kane (1941)."
)
film_repository.save(film6)

film7 = Film("No Time To Die", 4, "***", "Action",
             "James Bond has left active service.")
film_repository.save(film7)

review1 = Review(user1, film1, 2, "Entertaining, however not very woke.")
review_repository.save(review1)

review2 = Review(user1, film2, 2, "It's a kid's film")
review_repository.save(review2)

review3 = Review(user1, film3, 5,
                 "Gripping story of young men in the suburbs of Paris")
review_repository.save(review3)

watchlist1 = Watchlist(user2, film3)
watchlist_repository.save(watchlist1)

watchlist2 = Watchlist(user1, film1)
watchlist_repository.save(watchlist2)

# pdb.set_trace()