Пример #1
0
def show_movies_slider_widget(limit=settings.NUMBER_OF_MOVIES_FOR_WIDGET):
    CACHE_RANDOM_FILMS = 'random_films_for_tag'
    CACHE_FILMS_FOR_TAG = 'films_for_tag'
    CACHE_LINKS_FOR_GENRE = 'links_for_genre'

    tags = Film.get_top_tags()
    key = 'tag'
    key += "_".join(str(tag.id) for tag in tags)

    films_for_tags = cache.get_cache(CACHE_FILMS_FOR_TAG, key)
    films_list = cache.get_cache(CACHE_RANDOM_FILMS, films_for_tags)
    if not films_list:
        films_list = []
        if not films_for_tags:
            films_for_tags = []
            for tag in tags:
                rh = RecomHelper()
                films = rh.get_films_for_tag(str(tag), order_by="-popularity")
                films = films.filter(image__isnull=False)
                films_for_tags.append(films[:100])
            cache.set_cache(CACHE_FILMS_FOR_TAG, key, films_for_tags)

        for films in films_for_tags:
            films = list(films)
            random.shuffle(films)
            films = films[:limit]
            films_list += films
        cache.set_cache(CACHE_RANDOM_FILMS, films_for_tags, films_list,
                        CACHE_HOUR)

    links_list = cache.get_cache(CACHE_LINKS_FOR_GENRE, key)
    if not links_list:
        links_list = []
        for tag in tags:
            links = reverse('movies_menu', args=(tag.name, ))
            links_list.append(links)
        cache.set_cache(CACHE_LINKS_FOR_GENRE, key, links_list)

    return {'films': films_list, 'tags': tags, 'links': links_list}
Пример #2
0
def show_movies_slider_widget(limit=settings.NUMBER_OF_MOVIES_FOR_WIDGET):
    CACHE_RANDOM_FILMS = 'random_films_for_tag'
    CACHE_FILMS_FOR_TAG = 'films_for_tag'
    CACHE_LINKS_FOR_GENRE = 'links_for_genre'

    tags = Film.get_top_tags()
    key = 'tag'
    key += "_".join(str(tag.id) for tag in tags)

    films_for_tags = cache.get_cache(CACHE_FILMS_FOR_TAG, key)
    films_list = cache.get_cache(CACHE_RANDOM_FILMS, films_for_tags)
    if not films_list:
        films_list = []
        if not films_for_tags:
            films_for_tags = []
            for tag in tags:
                rh = RecomHelper()
                films = rh.get_films_for_tag(str(tag), order_by="-popularity")
                films = films.filter(image__isnull = False)
                films_for_tags.append(films[:100])
            cache.set_cache(CACHE_FILMS_FOR_TAG, key, films_for_tags)

        for films in films_for_tags:
            films = list(films)
            random.shuffle(films)
            films = films[:limit]
            films_list += films
        cache.set_cache(CACHE_RANDOM_FILMS, films_for_tags, films_list, CACHE_HOUR)

    links_list = cache.get_cache(CACHE_LINKS_FOR_GENRE, key)
    if not links_list:
        links_list = []
        for tag in tags:
            links = reverse('movies_menu', args=(tag.name,))
            links_list.append(links)
        cache.set_cache(CACHE_LINKS_FOR_GENRE, key, links_list)

    return {'films':films_list, 'tags': tags, 'links': links_list}
Пример #3
0
 def top_tags(self):
     from film20.core.models import Film
     return Film.get_top_tags()
Пример #4
0
 def top_tags(self):
     from film20.core.models import Film
     return Film.get_top_tags()