def test_import(self): """ Import a sample voting history from Filmweb """ f = open('import_ratings/tests/test_data/imdb_ratings.csv', 'rb') ratings_list = parse_imdb_votes(f) self.assertEquals(len(ratings_list), 5) save_ratings_in_db(self.u1, ratings_list, ImportRatings.IMDB, overwrite=True) all_ratings = ImportRatings.objects.all() self.assertEquals(len(all_ratings), 1) import_ratings() ratingsLogs = ImportRatingsLog.objects.all() self.assertEquals(len(ratingsLogs), 1) print ratingsLogs[0] ratings = Rating.objects.all() self.assertEquals(len(ratings), 5)
def test_import(self): """ Import a sample voting history from Criticker XML file """ path = os.path.dirname('') vote_history = os.path.abspath( 'import_ratings/tests/test_data/criticker_rankings.xml') ratings_list = parse_criticker_votes(vote_history) self.assertEquals(len(ratings_list), 10) save_ratings_in_db(self.u1, ratings_list, ImportRatings.CRITICKER, overwrite=True) all_ratings = ImportRatings.objects.all() self.assertEquals(len(all_ratings), 1) """ Gets the import records stored in ImportRatings table and imports them into single Rating records """ import_ratings() ratingsLogs = ImportRatingsLog.objects.all() self.assertEquals(len(ratingsLogs), 1) ratings = Rating.objects.all() self.assertEquals(len(ratings), 10)
def __init__(self, user, filmweb_login, filmweb_password, kind, overwrite, votes_url=None): logger.info("Create FilmwebRatingsFetcher") self.__create_browser_connection() self.__login_to_filmweb(filmweb_login, filmweb_password) if votes_url is None: self.fetch_user_name() self.fetch_user_id() votes_url = self.fetch_votes_history() self.create_ratings_array(votes_url) self.create_ratings_format() save_ratings_in_db(user, self.ratings, kind, overwrite)
def test_import(self): """ Import a sample voting history from Filmweb """ f = open("import_ratings/tests/test_data/imdb_ratings.csv", "rb") ratings_list = parse_imdb_votes(f) self.assertEquals(len(ratings_list), 5) save_ratings_in_db(self.u1, ratings_list, ImportRatings.IMDB, overwrite=True) all_ratings = ImportRatings.objects.all() self.assertEquals(len(all_ratings), 1) import_ratings() ratingsLogs = ImportRatingsLog.objects.all() self.assertEquals(len(ratingsLogs), 1) print ratingsLogs[0] ratings = Rating.objects.all() self.assertEquals(len(ratings), 5)
def import_ratings(request): """ View used to import rating from other movie sites """ previous_imports = None if request.method == "POST": if "criticker" in request.POST: criticker_form = ImportCritickerFileForm(request.POST, request.FILES) if criticker_form.is_valid(): overwrite = criticker_form.cleaned_data['overwrite'] reviews = criticker_form.cleaned_data['import_reviews'] scoring = criticker_form.cleaned_data['score_convertion'] ratings_file = criticker_form.cleaned_data['file'] try: ratings_list = parse_criticker_votes(xml_file=ratings_file,\ score_convertion=scoring,\ import_reviews=reviews) save_ratings_in_db(request.user, ratings_list, ImportRatings.CRITICKER, overwrite=overwrite) successful = True except Exception as e: successful = False elif "imdb" in request.POST: imdb_form = ImportImdbRatingsForm(request.POST, request.FILES) if imdb_form.is_valid(): ratings_file = imdb_form.cleaned_data['file'] overwrite = imdb_form.cleaned_data['overwrite'] try: ratings_list = parse_imdb_votes(ratings_file) save_ratings_in_db(request.user, ratings_list, ImportRatings.IMDB, overwrite=overwrite) successful = True except Exception as e: successful = False elif "filmweb" in request.POST: filmweb_form = ImportFilmwebRatingsForm(request.POST) if filmweb_form.is_valid(): filmweb_username = filmweb_form.cleaned_data.get('username') filmweb_password = filmweb_form.cleaned_data.get('password') overwrite = filmweb_form.cleaned_data['overwrite'] try: FilmwebRatingsFetcher(request.user, filmweb_username, filmweb_password, ImportRatings.FILMWEB, overwrite=overwrite) successful = True except Exception as e: successful = False if successful: messages.add_message(request, messages.INFO, _("Ratings will be imported in less then 15 minutes!")) else: logger.error( e ) messages.add_message(request, messages.INFO, _("We encountered an error:") + " " + str(e) + ". " + _("Please try again later. If problem seems permanent, please contact with us at") + " " + settings.CONTACT_EMAIL) return HttpResponseRedirect(reverse(import_ratings)) previous_imports = ImportRatingsLog.objects.filter(user=request.user).order_by("-created_at") criticker_form = ImportCritickerFileForm() imdb_form = ImportImdbRatingsForm() filmweb_form = ImportFilmwebRatingsForm() data = { 'criticker_form':criticker_form, 'imdb_form':imdb_form, 'filmweb_form':filmweb_form, 'previous_imports':previous_imports, } return render(request, templates['IMPORT_RATINGS_SETTINGS'], data)
def import_ratings(request): """ View used to import rating from other movie sites """ previous_imports = None if request.method == "POST": if "criticker" in request.POST: criticker_form = ImportCritickerFileForm(request.POST, request.FILES) if criticker_form.is_valid(): overwrite = criticker_form.cleaned_data['overwrite'] reviews = criticker_form.cleaned_data['import_reviews'] scoring = criticker_form.cleaned_data['score_convertion'] ratings_file = criticker_form.cleaned_data['file'] try: ratings_list = parse_criticker_votes(xml_file=ratings_file,\ score_convertion=scoring,\ import_reviews=reviews) save_ratings_in_db(request.user, ratings_list, ImportRatings.CRITICKER, overwrite=overwrite) successful = True except Exception as e: successful = False elif "imdb" in request.POST: imdb_form = ImportImdbRatingsForm(request.POST, request.FILES) if imdb_form.is_valid(): ratings_file = imdb_form.cleaned_data['file'] overwrite = imdb_form.cleaned_data['overwrite'] try: ratings_list = parse_imdb_votes(ratings_file) save_ratings_in_db(request.user, ratings_list, ImportRatings.IMDB, overwrite=overwrite) successful = True except Exception as e: successful = False elif "filmweb" in request.POST: filmweb_form = ImportFilmwebRatingsForm(request.POST) if filmweb_form.is_valid(): filmweb_username = filmweb_form.cleaned_data.get('username') filmweb_password = filmweb_form.cleaned_data.get('password') overwrite = filmweb_form.cleaned_data['overwrite'] try: FilmwebRatingsFetcher(request.user, filmweb_username, filmweb_password, ImportRatings.FILMWEB, overwrite=overwrite) successful = True except Exception as e: successful = False if successful: messages.add_message( request, messages.INFO, _("Ratings will be imported in less then 15 minutes!")) else: logger.error(e) messages.add_message( request, messages.INFO, _("We encountered an error:") + " " + str(e) + ". " + _("Please try again later. If problem seems permanent, please contact with us at" ) + " " + settings.CONTACT_EMAIL) return HttpResponseRedirect(reverse(import_ratings)) previous_imports = ImportRatingsLog.objects.filter( user=request.user).order_by("-created_at") criticker_form = ImportCritickerFileForm() imdb_form = ImportImdbRatingsForm() filmweb_form = ImportFilmwebRatingsForm() data = { 'criticker_form': criticker_form, 'imdb_form': imdb_form, 'filmweb_form': filmweb_form, 'previous_imports': previous_imports, } return render(request, templates['IMPORT_RATINGS_SETTINGS'], data)