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
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
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, })
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 })