示例#1
0
    def _apply_subtitle_changes(self, sub_collection, subtitle_set, packet):
        deleted = packet['deleted']
        updated = packet['updated']
        inserted = packet['inserted']

        if len(deleted) == 0 and len(inserted) == 0 and len(updated) == 0:
            return
        for d in deleted:
            subtitle_set.remove(subtitle_set.get(subtitle_id=d['subtitle_id']))
        for u in updated:
            subtitle = subtitle_set.get(subtitle_id=u['subtitle_id'])
            subtitle.update_from(u, sub_collection.is_dependent())
            subtitle.save()
        for i in inserted:
            if not subtitle_set.filter(subtitle_id=i['subtitle_id']).exists():
                if sub_collection.is_dependent():
                    subtitle = models.Subtitle(subtitle_id=i['subtitle_id'],
                                               subtitle_text=i['text'])
                else:
                    subtitle = models.Subtitle(subtitle_id=i['subtitle_id'],
                                               subtitle_text=i['text'],
                                               start_time=i['start_time'],
                                               end_time=i['end_time'],
                                               subtitle_order=i['sub_order'])
                subtitle_set.add(subtitle)
示例#2
0
文件: views.py 项目: crodjer/mirosubs
def save_emailed_translations(request):
    if request.method == "GET":
        return render_to_response('widget/save_emailed_translations.html',
                                  context_instance=RequestContext(request))
    else:
        draft = models.SubtitleDraft.objects.get(pk=request.POST['draft_pk'])
        user = CustomUser.objects.get(pk=request.POST['user_pk'])
        subs = json.loads(request.POST['sub_text'])
        draft.subtitle_set.all().delete()
        for sub in subs:
            subtitle = models.Subtitle(draft=draft,
                                       subtitle_id=sub['subtitle_id'],
                                       subtitle_text=sub['text'])
            subtitle.save()
        draft = models.SubtitleDraft.objects.get(pk=draft.pk)
        rpc_views.save_finished(draft, user)
        return redirect(draft.video.video_link())