Example #1
0
def library(request, username=None):
    if username:
        user = get_object_or_404(User, username=username)
    else:
        return redirect('user.views.library', username=request.user.username)

    return render(request, 'user/library.html', {
        'owner': user,
        'preload_data': {
            'owner': serializers.serialize_user(user, request.user),
            'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None,
            'records': [serializers.serialize_record(r, include_has_newer_episode=user == request.user)
                for r in user.record_set.all()],
        },
    })
Example #2
0
 def get(self, request, name=None):
     if name:
         user = get_object_or_404(User, username=name)
     else:
         user = request.user
         if not user.is_authenticated():
             self.raise_error('Not logged in', 403)
     return serialize_user(user, request.user)
Example #3
0
 def post(self, request):
     form = UserCreationForm(request.POST)
     if form.is_valid():
         user = form.save()
         user.backend = 'django.contrib.auth.backends.ModelBackend'
         login(request, user)
         request.session.set_expiry(0)
         request.session.save()
         return {'ok': True,
                 'user': serialize_user(user),
                 'session_key': request.session.session_key}
     return {'ok': False, 'errors': form.errors}
Example #4
0
def post_detail(request, id):
    post = get_object_or_404(History, id=id)
    preload_data = {
        'post': serializers.serialize_post(post, include_user=True),
        'work': serializers.serialize_work(post.work),
        'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None,
        'daum_api_key': settings.DAUM_API_KEY,
        'chart': _get_chart(),
    }
    return render(request, 'post.html', {
        'title': post.record.title,
        'preload_data': preload_data,
        'html': _call_backend('post', preload_data),
    })
Example #5
0
def index(request):
    preload_data = {
        'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None,
        'chart': _get_chart(),
        'posts': _get_timeline(),
    }
    try:
        resp = requests.post(settings.RENDER_BACKEND_URL + 'index',
            json=preload_data,
            timeout=settings.RENDER_BACKEND_TIMEOUT)
        html = resp.content
    except Exception as e:
        html = '<!-- Render server not responding: %s -->' % e
    return render(request, "index.html", {
        'preload_data': preload_data,
        'html': html,
    })
Example #6
0
def _render(request, template_name, period, exclude_continuous=False):
    indexes = WorkPeriodIndex.objects.filter(period=str(period)).all()
    if exclude_continuous:
        # Only include new or split-cour animes
        prev_period = str(period.prev())
        indexes = filter(lambda i: prev_period not in i.work.metadata["periods"], indexes)
    data = [serializers.serialize_work(index.work, request.user) for index in indexes]
    return render(
        request,
        template_name,
        {
            "period": period,
            "preload_data": {
                "period": str(period),
                "current_user": serializers.serialize_user(request.user, request.user)
                if request.user.is_authenticated()
                else None,
                "schedule": data,
            },
        },
    )
Example #7
0
def detail(request, chart_class, range_class=None, title=''):
    if range_class:
        range = range_class.last()
        chart = compare_charts(chart_class(range), chart_class(range.prev()))
    else:
        range = None
        chart = chart_class()

    cache_key = 'chart/' + str(chart_class) + '_' + repr(range)
    chart_json = cache.get(cache_key)
    if not chart_json:
        chart_json = serialize_chart(chart, 100)
        cache.set(cache_key, chart_json, 7200)

    return render(request, 'chart.html', {
        'title': title,
        'preload_data': {
            'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None,
            'title': title,
            'chart': chart_json,
            'has_diff': range != None,
        }
    })
Example #8
0
def detail(request, title):
    work = _get_work(title)
    preload_data = {
        'title': title,
        'work': serializers.serialize_work(work, request.user),
        'current_user': serializers.serialize_user(request.user, request.user) if request.user.is_authenticated() else None,
        'daum_api_key': settings.DAUM_API_KEY,
        'chart': _get_chart(),
    }
    content_data = {
        'title': title,
        'preload_data': preload_data,
        'html': _call_backend('work', preload_data),
    }
    try:
        studios = u','.join(preload_data['work']['metadata']['studios'])
        content_data.update({
            'meta_description': u'{} 제작'.format(studios),
            'meta_keywords': u','.join([title, studios]),
        })
    except KeyError:
        pass
    return render(request, "work.html", content_data)
Example #9
0
 def get(self, request, name):
     user = get_object_or_404(User, username=name)
     return serialize_user(user, request.user)