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}
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}
def top_tags(self): from film20.core.models import Film return Film.get_top_tags()