예제 #1
0
def check_like(user_id, film_id):
    db = DbManager()
    try:
        db.open().query(Like).filter(Like.user_id == user_id,
                                     Like.film_id == film_id).one()
    except:
        like_film(user_id, film_id)
    return db.close()
예제 #2
0
def like_a_tvshow(user_id, api_id):
    # LIKE A TVSHOW
    # return a Like Model if success, if already exist return None
    tvshow = get_tvshow_by_api_id(api_id)
    db = DbManager()
    try:
        db.open().query(Like).filter(Like.user_id == user_id,
                                     Like.tvshow_id == tvshow.id).one()
        return None
    except:
        like = Like()
        like.user_id = user_id
        like.tvshow_id = tvshow.id
        db.save(like)
        return like
예제 #3
0
def get_user_by_id(id):
    # GET USER BY ID
    db = DbManager()
    try:
        return db.open().query(User).filter(User.id == id).one()
    except:
        return None
예제 #4
0
def get_movie_by_id(movie_id):
    try:
        db = DbManager()
        movie = db.open().query(Movie).filter(Movie.api_id == movie_id).one()
        return movie
    except:
        pass
예제 #5
0
def search_movie_by_url(url):
    try:
        db = DbManager()
        movie = db.open().query(Movie).filter(Movie.url == url).one()
        return movie
    except:
        pass
예제 #6
0
def search_film_by_name(query):
    db = DbManager()
    films = db.open().query(Film).filter(Film.name.like(
        "%{}%".format(query))).all()

    db.close()
    return films
예제 #7
0
def get_user_likes_movie_id(user_id):
    db = DbManager()
    like_ids = []
    likes = db.open().query(Like).filter(Like.user_id == user_id).all()
    for like in likes:
        like_ids.append(like.tvshow.api_id)
    return like_ids
예제 #8
0
def delete_quote(quote_id):
    try:
        db = DbManager()
        quote = db.open().query(Quote).filter(Quote.id == quote_id).one()
        return db.delete(quote)
    except:
        pass
def delete_task(task_id):
    print('-------------------------------------------')
    print(task_id)
    db = DbManager()
    task = db.open().query(Task).filter(Task.id == task_id).one()
    task = db.delete(task)
    db.close()
    return task
예제 #10
0
def delete_project(project_id):
    db = DbManager()
    # project = db.delete(get_project(project_id))
    project = db.open().query(Project).filter(Project.id == project_id).one()
    project = db.delete(project)

    db.close()
    return project
예제 #11
0
def search_by_user_or_email(query):
    try:
        db = DbManager()
        return db.open().query(User).filter(
            or_(User.name.like('%{}%'.format(query)),
                User.email.like('%{}%'.format(query)))).all()
    except:
        pass
예제 #12
0
def delete_like(movie_id):
    try:
        db = DbManager()
        show = db.open().query(Like).filter(Like.id == movie_id).one()
        like = db.delete(show)
        return like
    except:
        raise
예제 #13
0
def get_user_like(user_id):
    try:
        db = DbManager()
        likes = db.open().query(Like).filter(Like.user_id == user_id).order_by(
            desc(Like.created_at)).all()
        return likes
    except:
        pass
예제 #14
0
def get_user_likes(user_id):
    # GET USER LIKES
    # it gonna be return array-of-TVShow or empty-array
    db = DbManager()
    tvshows = []
    likes = db.open().query(Like).filter(Like.user_id == user_id).all()
    for like in likes:
        tvshows.append(like.tvshow)
    return tvshows
예제 #15
0
def get_show(query):
    db = DbManager()
    url = API_URL.format(query)
    data = get_request(url)
    movies = []

    for obj in data:
        movie = Movie()
        movie.parse_json(obj)

        try:
            db.open().query(Movie).filter(Movie.url == movie.url).one()
        except:
            db.save(movie)

        movies.append(movie)

    return movies
예제 #16
0
def unlike_a_tvshow(user_id, api_id):
    # UNLIKE TVSHOW
    tvshow = get_tvshow_by_api_id(api_id)
    db = DbManager()
    try:
        like = db.open().query(Like).filter(Like.user_id == user_id,
                                            Like.tvshow_id == tvshow.id).one()
        db.delete(like)
    except:
        return False
예제 #17
0
def create__like(user_id, show_id):
    db = DbManager()
    like = Like()
    check = db.open().query(Like).filter(Like.user_id == user_id).filter(Like.show_id == show_id).all()
    if len(check) == 0:
        like.show_id = show_id
        like.user_id = user_id
        return db.save(like)

    return False
예제 #18
0
def get_tvshow_by_api_id(api_id):
    db = DbManager()
    try:
        tvshow = db.open().query(TVShow).filter(TVShow.api_id == api_id).one()
        return tvshow
    except:
        tvshow = TVShow()
        url = TVMAZE_GET_URL.format('shows', api_id)
        response = get_request(url)
        tvshow.parse_json(response)
        db.save(tvshow)
        return tvshow
예제 #19
0
def get_tvshow_by_url(tvshow_url):
    DB = DbManager()
    try:
        tvshow = DB.open().query(TVShow).filter(TVShow.url == tvshow_url).one()
        DB.close()
        return tvshow
    except:
        DB = DbManager()
        data = get_request(tvshow_url)
        tvshow = TVShow()
        tvshow.parse_json(data)
        DB.save(tvshow)
        DB.close()
        return tvshow
예제 #20
0
def search_tvshows(keyword):
    # always search from api first because it's all inclusive, search from db probably get less result
    db = DbManager()
    tvshows = []
    url = TVMAZE_SEARCH_URL.format('shows', keyword)
    for results in get_request(url):
        try:
            tvshow = db.open().query(TVShow).filter(
                TVShow.api_id == results['show']['id']).one()
        except:
            tvshow = TVShow()
            tvshow.parse_json(results['show'])
            db.save(tvshow)
        tvshows.append(tvshow)
    return tvshows
예제 #21
0
def create_like(user_id, movie_id):
    try:
        db = DbManager()

        movie = db.open().query(Movie).filter(Movie.api_id == movie_id).one()

        like = Like()
        like.user_id = user_id
        like.movie_id = movie.id

        db.save(like)

        return like
    except:
        pass
예제 #22
0
def do_login(email, password):
    error_message = []
    db = DbManager()
    # if user by email is exist
    try:
        user = db.open().query(User).filter(User.email == email).one()
        # check if password is match
        encoded_pass = password.encode('UTF-8')
        encrypted_pass = bcrypt.checkpw(encoded_pass, bcrypt.gensalt())
        if user.password == password:
            return user
        else:
            error_message.append('Incorect password')
    except:
        error_message.append("User doesn't exist")
    return error_message
예제 #23
0
def like_tvshow(user_id, tvshow_id):
    user = get_user_by_id(user_id)

    tvshow_url = TVMAZE_URL.format('shows', tvshow_id)
    tvshow = get_tvshow_by_url(tvshow_url)

    DB = DbManager()
    try:
        exist = DB.open().query(Like).filter(Like.user_id == user_id, Like.tvshow_id == tvshow.id).one()
        return exist
    except:
        like = Like()
        like.user = user
        like.tvshow = tvshow
        DB.save(like)
        return like
예제 #24
0
def get_all_quotes():
    db = DbManager()
    return db.open().query(Quote).all()
예제 #25
0
def get_user_by_email(user_email):
    db = DbManager()
    return db.open().query(User).filter(User.email == user_email).one()
예제 #26
0
def get_user_by_name(name):
    db = DbManager()
    return db.open().query(User).filter(User.name == name).one()
예제 #27
0
def get_user_by_id(user_id):
    db = DbManager()
    return db.open().query(User).filer(User.id == user_id).one()
예제 #28
0
def delete_quote(quote_id):
    db = DbManager()
    quote = db.open().query(Quote).filter(Quote.id == quote_id).one()
    quote = db.delete(quote)
    db.close()
    return quote
예제 #29
0
def get_all_quotes_for(user_id):
    db = DbManager()
    return db.open().query(Quote).filter(Quote.user_id == user_id).all()
예제 #30
0
def get_all_quotes():
    db = DbManager()
    return db.open().query(Quote).order_by(desc(Quote.created_at)).all()