Example #1
0
def serialize_work(work, viewer=None, full=False):
    data = {
        'id': work.id,
        'title': work.title,
    }
    if work.image_filename:
        data['image_url'] = 'https://animeta.net/media/' + work.image_filename
    if full:
        data['alt_titles'] = list(TitleMapping.objects.filter(work=work)
                                  .exclude(title=work.title)
                                  .values_list('title', flat=True))
        data['episodes'] = get_episodes(work)
    try:
        data['record_count'] = work.index.record_count
        data['rank'] = work.index.rank
    except WorkIndex.DoesNotExist:
        data['record_count'] = work.record_set.count()
    if viewer and viewer.is_authenticated():
        try:
            data['record'] = serialize_record(viewer.record_set.get(work=work))
        except Record.DoesNotExist:
            pass
    metadata = work.metadata
    if metadata:
        period = Period.parse(metadata['periods'][0])
        data['metadata'] = item_json(work, metadata, period)
    return data
Example #2
0
def serialize_work(work, viewer=None):
    alt_titles = list(TitleMapping.objects.filter(work=work) \
            .exclude(title=work.title).values_list('title', flat=True))
    episodes = get_episodes(work)
    data = {
        'id': work.id,
        'title': work.title,
        'alt_titles': alt_titles,
        'episodes': episodes,
    }
    try:
        data['record_count'] = work.index.record_count
        data['rank'] = work.index.rank
    except WorkIndex.DoesNotExist:
        data['record_count'] = work.record_set.count()
    if viewer and viewer.is_authenticated():
        try:
            data['record'] = serialize_record(viewer.record_set.get(work=work))
        except Record.DoesNotExist:
            pass
    metadata = work.metadata
    if metadata:
        period = Period.parse(metadata['periods'][0])
        data['metadata'] = item_json(metadata, period)
    return data
Example #3
0
def episode_detail(request, title, ep):
    ep = int(ep)
    work = get_object_or_404(Work, title=title)
    history_list = work.history_set.filter(status=str(ep)).exclude(comment='').order_by('-id')
    return render(request, 'work/episode.html', {
        'work': work,
        'current_episode': ep,
        'episodes': get_episodes(work),
        'record': _get_record(request, work),
        'history_list': history_list,
    })
Example #4
0
def detail(request, title):
    work = get_object_or_404(Work, title=title)

    N = 6
    history = work.history_set.all().select_related('user')
    comments = list(history.exclude(comment='')[:N])
    if len(comments) < N:
        comments += list(history.filter(comment='')[:N-len(comments)])

    alt_titles = TitleMapping.objects.filter(work=work) \
            .exclude(title=work.title).values_list('title', flat=True)
    return render(request, "work/work_detail.html", {
        'work': work,
        'episodes': get_episodes(work),
        'record': _get_record(request, work),
        'records': work.record_set,
        'alt_titles': alt_titles,
        'comments': comments,
        'daum_api_key': settings.DAUM_API_KEY
    })