def search_film_by_name(query): db = DbManager() films = db.open().query(Film).filter(Film.name.like( "%{}%".format(query))).all() db.close() return films
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
def search_movie_by_url(url): try: db = DbManager() movie = db.open().query(Movie).filter(Movie.url == url).one() return movie except: pass
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
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
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 create_user(name, email, password, confirm): error_message = [] # 4 is not blank if len(name) == 0: error_message.append('Name cannot be empty') if len(email) == 0: error_message.append('Email cannot be empty') if len(password) == 0: error_message.append('Password cannot be empty') if len(confirm) == 0: error_message.append('Confirm Password cannot be empty') # password length more than 6 if len(password) < 6: error_message.append('Password must be at least 6 character') # password and confirm is match if password != confirm: error_message.append('Password not match') if len(error_message) == 0: db = DbManager() try: user = User() user.name = name user.email = email encoded = password.encode('UTF-8') encrypted = bcrypt.hashpw(encoded, bcrypt.gensalt()) user.password = password db.save(user) return user except: error_message.append('Email already exist') return error_message
def create_user(email, name, password): db = DbManager() user = User() user.name = name user.email = email user.password = password return db.save(user)
def create_user(fullname, username, email, password): db = DbManager() user = User() user.fullname = fullname user.username = username user.email = email user.password = password return db.save(user)
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
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
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
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()
def create_quote(user_id, content): try: db = DbManager() quote = Quote() quote.user_id = user_id quote.content = content return db.save(quote) except: pass
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
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
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
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
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
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
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
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
def search_movie(query): try: db = DbManager() url = API_URL.format(query) data = get_request(url) movies = [] for obj in data: try: movie = Movie() movie.parse_json(obj) db.save(movie) movies.append(movie) except: movies.append(movie) return movies except: pass
def save_movie_to_db(api_id, url, name, image): db = DbManager() movie = Movie() movie.parse_json(obj) movie.api_id = api_id movie.url = url movie.name = name movie.image = image return save.db(movie)
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
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
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
def download_data(query): db = DbManager() datas = json.loads( requests.get( "http://api.tvmaze.com/search/shows?q={}".format(query)).text) for data in datas: try: savingdata = Film() savingdata.parse(data['show']) db.save(savingdata) print('-> created Film in db') except: print('data exist') db.close()
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
def get_all_quotes(): db = DbManager() return db.open().query(Quote).all()