예제 #1
0
파일: imdb.py 프로젝트: manlan2/filmaster
    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)
예제 #2
0
    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)
예제 #4
0
    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)
예제 #5
0
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)
예제 #6
0
파일: views.py 프로젝트: manlan2/filmaster
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)