Example #1
0
def random_film_to_rate(request):
    """
        Widget for main page (for not logged in users)
        displaying a film to rate, selected from
        the list of 10 most popular films.
    """

    user = request.user
    
    if user.is_authenticated():
        film = Film.get_next_film_to_rate(user)
    else:
        key = cache.Key("popular_films_list")

        popular_films = cache.get(key)

        if popular_films is None:
            fhelper = FilmHelper()
            lang = getattr(settings, 'LANGUAGE_CODE', 'en')
            if lang == 'en':
                popular_films = fhelper.get_popular_films(exclude_nonEnglish=True)
            else:
                popular_films = fhelper.get_popular_films()
            cache.set(key, popular_films)

        film = popular_films and random.choice(popular_films) or None

    return {
        'film': film, 
    }
Example #2
0
def random_film_to_rate(request):
    """
        Widget for main page (for not logged in users)
        displaying a film to rate, selected from
        the list of 10 most popular films.
    """

    user = request.user

    if user.is_authenticated():
        film = Film.get_next_film_to_rate(user)
    else:
        key = cache.Key("popular_films_list")

        popular_films = cache.get(key)

        if popular_films is None:
            fhelper = FilmHelper()
            lang = getattr(settings, 'LANGUAGE_CODE', 'en')
            if lang == 'en':
                popular_films = fhelper.get_popular_films(
                    exclude_nonEnglish=True)
            else:
                popular_films = fhelper.get_popular_films()
            cache.set(key, popular_films)

        film = popular_films and random.choice(popular_films) or None

    return {
        'film': film,
    }
Example #3
0
    def test_get_popular_films(self):
        """
            Test get_popular_films method
        """

        self.initialize()
        helper = FilmHelper()

        films_english = set(helper.get_popular_films(exclude_nonEnglish=True))
        self.assertEquals(self.film1 in films_english, True)
        self.assertEquals(self.film3 in films_english, False)
        self.assertEquals(self.film4 in films_english, False)

        films_english = set(helper.get_popular_films())
        self.assertEquals(self.film1 in films_english, True)
        self.assertEquals(self.film3 in films_english, True)
Example #4
0
    def test_get_popular_films(self):
        """
            Test get_popular_films method
        """

        self.initialize()
        helper = FilmHelper()

        films_english = set(helper.get_popular_films(exclude_nonEnglish=True))
        self.assertEquals(self.film1 in films_english, True)
        self.assertEquals(self.film3 in films_english, False)
        self.assertEquals(self.film4 in films_english, False)

        films_english = set(helper.get_popular_films())
        self.assertEquals(self.film1 in films_english, True)
        self.assertEquals(self.film3 in films_english, True)
Example #5
0
def random_top_movie():
    """Displays some random popular movie on Filmaster."""

    key = cache.Key("popular_films")
    popular_films = cache.get(key)
    if popular_films is None:
        # Get most popular films
        fhelper = FilmHelper()
        popular_films = list(
            fhelper.get_popular_films(exclude_nonEnglish=True))
        cache.set(key, popular_films)
    random.shuffle(popular_films)
    if len(popular_films) > 0:
        return {'movie': popular_films[0]}
    else:
        return {'movie': None}
Example #6
0
def random_top_movie():
    """Displays some random popular movie on Filmaster."""

    key = cache.Key("popular_films")
    popular_films = cache.get(key)
    if popular_films is None:
        # Get most popular films
        fhelper = FilmHelper()
        popular_films = list(fhelper.get_popular_films(
            exclude_nonEnglish=True))
        cache.set(key, popular_films)
    random.shuffle(popular_films)
    if len(popular_films) > 0:
        return {'movie': popular_films[0]}
    else:
        return {'movie': None}
Example #7
0
def top_recommendations_all(context, films_number=4):
    """
        Displays user's top recommended movies
        (most popular for not logged in).
    """
    POPULAR_FILMS_NUMBER_ALL = getattr(settings,
                                       'POPULAR_FILMS_MAIN_PAGE_NUMBER_ALL')

    user = context.get('recommendations_user', context['request'].user)
    key = cache.Key("popular_films_main_page", user)

    films = cache.get(key)
    if (not films) or len(films) < films_number:

        key_all = cache.Key("popular_films_main_page_all", user)
        all_films = cache.get(key_all)
        if not all_films:
            has_recommendations = user.is_authenticated() and \
                    user.get_profile().recommendations_status
            if has_recommendations:
                recom_helper = RecomHelper()
                all_films = list(
                    recom_helper.get_best_psi_films_queryset(user)
                    [:POPULAR_FILMS_NUMBER_ALL])
            else:
                fhelper = FilmHelper()
                all_films = list(
                    fhelper.get_popular_films(
                        number_of_films=POPULAR_FILMS_NUMBER_ALL,
                        exclude_nonEnglish=True))

            cache.set(key_all, all_films, cache.A_MONTH)

        # Select random few films
        random.shuffle(all_films)
        films = all_films[:films_number]
        cache.set(key, films, cache.A_QUARTER)

    return films[:films_number]
Example #8
0
def top_recommendations_all(context, films_number=4):
    """
        Displays user's top recommended movies
        (most popular for not logged in).
    """
    POPULAR_FILMS_NUMBER_ALL = getattr(settings,
            'POPULAR_FILMS_MAIN_PAGE_NUMBER_ALL')

    user = context['request'].user
    key = cache.Key("popular_films_main_page", user)

    films = cache.get(key)
    if (not films) or len(films) < films_number:

        key_all = cache.Key("popular_films_main_page_all", user)
        all_films = cache.get(key_all)
        if not all_films:
            has_recommendations = user.is_authenticated() and \
                    user.get_profile().recommendations_status
            if has_recommendations:
                recom_helper = RecomHelper()
                all_films = list(recom_helper.get_best_psi_films_queryset(
                    user_id = user.id, offset=0,
                    limit=POPULAR_FILMS_NUMBER_ALL))
            else:
                fhelper = FilmHelper()
                all_films = list(fhelper.get_popular_films(
                        number_of_films=POPULAR_FILMS_NUMBER_ALL,
                        exclude_nonEnglish=True))

            cache.set(key_all, all_films, cache.A_MONTH)

        # Select random few films
        random.shuffle(all_films)
        films = all_films[:films_number]
        cache.set(key, films, cache.A_QUARTER)

    return films[:films_number]