Beispiel #1
0
def lists_own(request):

    lists = podcastlists_for_user(request.user._id)

    return render(request, 'lists.html', {
            'lists': lists
        })
Beispiel #2
0
def lists_user(request, username):

    user = User.get_user(username)
    if not user:
        raise Http404

    lists = podcastlists_for_user(user._id)

    return render(request, 'lists_user.html', {
            'lists': lists,
            'user': user,
        })
Beispiel #3
0
def get_lists(request, username):
    """ Returns a list of all podcast lists by the given user """

    user = User.get_user(username)
    if not user:
        raise Http404

    lists = podcastlists_for_user(user._id)

    site = RequestSite(request)

    get_data = partial(_get_list_data, username=user.username,
                domain=site.domain)
    lists_data = map(get_data, lists)

    return JsonResponse(lists_data)
Beispiel #4
0
 def get_podcast_lists(self, user):
     return podcastlists_for_user(user._id)
Beispiel #5
0
def dashboard(request, episode_count=10):

    subscribed_podcasts = list(request.user.get_subscribed_podcasts())
    site = RequestSite(request)

    checklist = []

    if request.user.devices:
        checklist.append('devices')

    if subscribed_podcasts:
        checklist.append('subscriptions')

    if favorite_episode_ids_for_user(request.user):
        checklist.append('favorites')

    if not request.user.get_token('subscriptions_token'):
        checklist.append('share')

    if not request.user.get_token('favorite_feeds_token'):
        checklist.append('share-favorites')

    if not request.user.get_token('userpage_token'):
        checklist.append('userpage')

    if tags_for_user(request.user):
        checklist.append('tags')

    # TODO add podcastlist_count_for_user
    if podcastlists_for_user(request.user._id):
        checklist.append('lists')

    if request.user.published_objects:
        checklist.append('publish')

    if request.user.get_wksetting(FLATTR_TOKEN):
        checklist.append('flattr')

    if request.user.get_wksetting(FLATTR_AUTO):
        checklist.append('auto-flattr')

    tomorrow = datetime.today() + timedelta(days=1)

    podcasts = PodcastSet(subscribed_podcasts)

    newest_episodes = podcasts.get_newest_episodes(tomorrow, episode_count)

    def get_random_podcasts():
        random_podcast = next(random_podcasts(), None)
        if random_podcast:
            yield random_podcast.get_podcast()

    # we only show the "install reader" link in firefox, because we don't know
    # yet how/if this works in other browsers.
    # hints appreciated at https://bugs.gpodder.org/show_bug.cgi?id=58
    show_install_reader = \
                'firefox' in request.META.get('HTTP_USER_AGENT', '').lower()

    return render(request, 'dashboard.html', {
            'user': request.user,
            'subscribed_podcasts': subscribed_podcasts,
            'newest_episodes': list(newest_episodes),
            'random_podcasts': get_random_podcasts(),
            'checklist': checklist,
            'site': site,
            'show_install_reader': show_install_reader,
        })