コード例 #1
0
ファイル: views.py プロジェクト: fk-lx/mygpo
def episode_toplist(request, num=100):
    lang = process_lang_params(request)

    toplist = EpisodeToplist(language=lang)
    entries = list(map(proxy_object, toplist[:num]))

    # load podcast objects
    podcast_ids = [e.podcast for e in entries]
    podcasts = podcasts_to_dict(podcast_ids, True)
    for entry in entries:
        entry.podcast = podcasts.get(entry.podcast, None)

    current_site = RequestSite(request)

    # Determine maximum listener amount (or 0 if no entries exist)
    max_listeners = max([0]+[e.listeners for e in entries])

    languages = get_podcast_languages()
    all_langs = get_language_names(languages)

    return render(request, 'episode_toplist.html', {
        'entries': entries,
        'max_listeners': max_listeners,
        'url': current_site,
        'language': lang,
        'all_languages': all_langs,
    })
コード例 #2
0
ファイル: views.py プロジェクト: deepak02/xyz_gpod
    def all_languages(self):
        """ Returns all 2-letter language codes that are used by podcasts.

        It filters obviously invalid strings, but does not check if any
        of these codes is contained in ISO 639. """

        query = Podcast.objects.exclude(language__isnull=True)
        query = query.distinct('language').values('language')

        langs = [o['language'] for o in query]
        langs = sorted(sanitize_language_codes(langs))

        return get_language_names(langs)
コード例 #3
0
ファイル: views.py プロジェクト: Korvox/mygpo
    def all_languages(self):
        """ Returns all 2-letter language codes that are used by podcasts.

        It filters obviously invalid strings, but does not check if any
        of these codes is contained in ISO 639. """

        query = Podcast.objects.exclude(language__isnull=True)
        query = query.distinct('language').values('language')

        langs = [o['language'] for o in query]
        langs = sorted(sanitize_language_codes(langs))

        return get_language_names(langs)
コード例 #4
0
ファイル: views.py プロジェクト: fk-lx/mygpo
def toplist(request, num=100, lang=None):

    lang = process_lang_params(request)

    toplist = PodcastToplist(lang)
    entries = toplist[:num]

    max_subscribers = max([p.subscriber_count() for (oldp, p) in entries]) if entries else 0
    current_site = RequestSite(request)

    languages = get_podcast_languages()
    all_langs = get_language_names(languages)

    return render(request, 'toplist.html', {
        'entries': entries,
        'max_subscribers': max_subscribers,
        'url': current_site,
        'language': lang,
        'all_languages': all_langs,
    })
コード例 #5
0
ファイル: views.py プロジェクト: Mic92/mygpo
        lang = utils.process_lang_params(request)
    except utils.UpdatedException, updated:
        return HttpResponseRedirect("/toplist/?lang=%s" % ",".join(updated.data))

    type_str = request.GET.get("types", "")
    set_types = [t for t in type_str.split(",") if t]
    media_types = set_types or CONTENT_TYPES

    toplist = PodcastToplist(lang, media_types)
    entries = toplist[:num]

    max_subscribers = max([p.subscriber_count() for (oldp, p) in entries]) if entries else 0
    current_site = RequestSite(request)

    languages = get_cache_or_calc("podcast-languages", timeout=60 * 60, calc=lambda: utils.get_podcast_languages())
    all_langs = utils.get_language_names(languages)

    return render(
        request,
        "toplist.html",
        {
            "entries": entries,
            "max_subscribers": max_subscribers,
            "url": current_site,
            "languages": lang,
            "all_languages": all_langs,
            "types": media_types,
        },
    )