def createMovie(self, response): # save results in the database for rawitem in response['results']: # avoid request limits time.sleep(1) print "Saving %s" % rawitem['title'] # ask for details about the movie item = self.createRequest( "get", "/movie/%s" % rawitem['id'], { "api_key" : self.api_key, "append_to_response" : "videos" }) # collect genres ids genres = item['genres'] genresNew = [] item['genres'] = [] for genre in genres: try: genredb = MovieGenres.objects.get(name=genre['name']) except MovieGenres.DoesNotExist: genredb = MovieGenres( name=genre['name'], url=slugify(genre['name']) ) genredb.save() genresNew.append(genredb.id) item['url'] = slugify( item['title'] ) # trailer trailer_youtube_url = None if "results" in item['videos']: for video in item['videos']['results']: if ( video['type'].lower()=="trailer" and video['site'].lower()=="youtube" ): trailer_youtube_url = video['key'] break if trailer_youtube_url != None: item['trailer_youtube_url'] = trailer_youtube_url else: continue # create/update movie try: movie = Movie.objects.get( url=item['url'] ) except Movie.DoesNotExist: movie = Movie() Movie.createFromJSON( movie, item ) movie.save() # add genres movie.genres = genresNew # add image movie.poster_image_ext = self.imgConfig['base_url'] + 'w185' + item['poster_path'] # save movie.save() print "... Saved"