def post(self, request): tmdb.API_KEY = config.TMDB_API_KEY try: expert = ExpertPicksCategory.objects.get(expert_id=request.user.pk) category = expert.pk picks = ExpertPickMovie.objects.filter(category=category) picks.delete() str = request.POST.get('message', '') split = str.split(',') i = 1 for spl in split: ID = int(spl) Movie.get_or_create(ID) new_pick = ExpertPickMovie( category_id=category, order=i, movie_id=ID ) new_pick.save() i = i+1 message = "The list is saved" changes = 0 except ObjectDoesNotExist: message = "The user is not expert" changes = 1 return JsonResponse({ 'message': message, 'changes': changes })
def save_data(self, movie_data_list, collections_list, genre_data_list, production_companies_list, production_countries_list): movie_objects = Movie.get_or_create(*movie_data_list) for n, movie in enumerate(movie_objects): if collections_list[n] is not None: collection_object = Collection.get_or_create( collections_list[n])[0] movie.is_part_of.connect(collection_object) for n, genres in enumerate(genre_data_list): movie = movie_objects[n] genres_objects = Genre.get_or_create(*genres) [movie.genres.connect(genre) for genre in genres_objects] for n, production_companies in enumerate(production_companies_list): movie = movie_objects[n] production_companies_objects = ProductionCompany.get_or_create( *production_companies) [ movie.produced_by.connect(production_company) for production_company in production_companies_objects ] for n, production_country in enumerate(production_countries_list): movie = movie_objects[n] production_country_objects = ProductionCountry.get_or_create( *production_country) [ movie.produced_in.connect(production_country) for production_country in production_country_objects ]
def get(self, request, pk): movie = Movie.get_or_create(pk) if movie is None: raise Http404 # insert movie into searched movies table if request.user.is_authenticated: SearchedMovie.increment_search_count(User.get_user(request.user), movie) serializer = MovieSerializer(movie) data = serializer.data # get actors from TMDB movie_credits = tmdb.Movies(pk).credits() data['cast'] = [] for cast in movie_credits['cast'][:MAX_NUM_CASTS]: cast_data = {k: v for k, v in cast.items() if k in {'character', 'name', 'profile_path'}} # set default profile photo if no photo is received # from TMDB if cast_data['profile_path'] is None: cast_data['profile_path'] = '' else: cast_data['profile_path'] = f'https://image.tmdb.org/t/p/w276_and_h350_face{cast_data["profile_path"]}' data['cast'].append(cast_data) return Response(data)
def get(self, request, pk): user = User.get_user(request.user) movie = Movie.get_or_create(pk) if movie is None: raise Http404 CollectedMovie.objects.filter(user=user, movie=movie).delete() # success status return Response('')
def add_collected_data(recommended_movies, user): """ Inserts information if the movie is collected by current user. """ for recommended_movie in recommended_movies: if Movie.exists(recommended_movie['id']): movie = Movie.get_or_create(recommended_movie['id']) if CollectedMovie.is_favorite(user, movie): recommended_movie['favorite'] = True elif CollectedMovie.is_watched(user, movie): recommended_movie['watched'] = True
def get(self, request, pk): user = User.get_user(request.user) movie = Movie.get_or_create(pk) if movie is None: raise Http404 try: collected_item = CollectedMovie.objects.filter(user=user, movie=movie).get() collected_item.type = self.list_type except CollectedMovie.DoesNotExist: collected_item = CollectedMovie( user=user, movie=movie, type=self.list_type ) collected_item.save() # success status return Response('')