def _find_appropriate_language(self, video, language_code): language = video.subtitle_language(language_code) if not language: language = SubtitleLanguage( video=video, is_original=False, is_forked=True) language.language = language_code language.save() return language
def save_subtitles(self, parser): video = self.cleaned_data['video'] key = str(uuid4()).replace('-', '') video._make_writelock(self.user, key) video.save() if not video.has_original_language(): self._save_original_language( video, self.cleaned_data['video_language']) language = video.subtitle_language(self.cleaned_data['language']) if not language: language = SubtitleLanguage(video=video, is_original=False, is_forked=True) language.language = self.cleaned_data['language'] language.save() try: old_version = language.subtitleversion_set.all()[:1].get() version_no = old_version.version_no + 1 except ObjectDoesNotExist: old_version = None version_no = 0 if not self.is_version_same(old_version, parser): version = SubtitleVersion( language=language, version_no=version_no, datetime_started=datetime.now(), user=self.user, note=u'Uploaded', is_forked=True, time_change=1, text_change=1) version.save() ids = [] for i, item in enumerate(parser): id = int(random.random()*10e12) while id in ids: id = int(random.random()*10e12) ids.append(id) caption = Subtitle(**item) caption.version = version caption.subtitle_id = str(id) caption.subtitle_order = i+1 caption.save() version.save() version.update_percent_done() language.update_complete_state() language.save() if language.is_original: video.update_complete_state() video.release_writelock() video.save() return language
def _save_original_language(self, video, video_language): original_language = video.subtitle_language() if original_language: if original_language.language: try: language_exists = video.subtitlelanguage_set.exclude(pk=original_language.pk) \ .get(language=video_language) original_language.is_original = False original_language.save() language_exists.is_original = True language_exists.save() except ObjectDoesNotExist: original_language.language = video_language original_language.save() else: try: language_exists = video.subtitlelanguage_set.exclude(pk=original_language.pk) \ .get(language=video_language) latest_version = original_language.latest_version() if latest_version: last_no = latest_version.version_no else: last_no = 0 for version in language_exists.subtitleversion_set.all(): version.language = original_language last_no += 1 version.version_no = last_no version.save() language_exists.delete() except ObjectDoesNotExist: pass original_language.language = video_language original_language.save() else: #original_language always exists, but... try: language_exists = video.subtitlelanguage_set.get( language=video_language) language_exists.is_original = True language_exists.save() except ObjectDoesNotExist: original_language = SubtitleLanguage() original_language.language = video_language original_language.is_original = True original_language.video = video original_language.save()
def _save_original_language(self, video, video_language): original_language = video.subtitle_language() if original_language: if original_language.language: try: language_exists = video.subtitlelanguage_set.exclude(pk=original_language.pk) \ .get(language=video_language) original_language.is_original = False original_language.save() language_exists.is_original = True language_exists.save() except ObjectDoesNotExist: original_language.language = video_language original_language.save() else: try: language_exists = video.subtitlelanguage_set.exclude(pk=original_language.pk) \ .get(language=video_language) latest_version = original_language.latest_version() if latest_version: last_no = latest_version.version_no else: last_no = 0 for version in language_exists.subtitleversion_set.all(): version.language = original_language last_no += 1 version.version_no = last_no version.save() language_exists.delete() except ObjectDoesNotExist: pass original_language.language = video_language original_language.save() else: #original_language always exists, but... try: language_exists = video.subtitlelanguage_set.get(language=video_language) language_exists.is_original = True language_exists.save() except ObjectDoesNotExist: original_language = SubtitleLanguage() original_language.language = video_language original_language.is_original = True original_language.video = video original_language.save()
def _create_trans(video, latest_version=None, lang_code=None, forked=False): translation = SubtitleLanguage() translation.video = video translation.language = lang_code translation.is_original = False translation.is_forked = forked if not forked: translation.standard_language = video.subtitle_language() translation.save() v = SubtitleVersion() v.language = translation if latest_version: v.version_no = latest_version.version_no + 1 else: v.version_no = 1 v.datetime_started = datetime.now() v.save() if latest_version is not None: for s in latest_version.subtitle_set.all(): s.duplicate_for(v).save() return translation
def setUp(self): self.video = Video.objects.all()[:1].get() self.original_language = self.video.subtitle_language() latest_version = self.original_language.latest_version() translation = SubtitleLanguage() translation.video = self.video translation.language = 'uk' translation.is_original = False translation.is_forked = False translation.save() self.translation = translation v = SubtitleVersion() v.language = translation v.datetime_started = datetime.now() v.save() self.translation_version = v for s in latest_version.subtitle_set.all(): s.duplicate_for(v).save()
def save_subtitles(self, parser): video = self.cleaned_data['video'] key = str(uuid4()).replace('-', '') video._make_writelock(self.user, key) video.save() if not video.has_original_language(): self._save_original_language(video, self.cleaned_data['video_language']) language = video.subtitle_language(self.cleaned_data['language']) if not language: language = SubtitleLanguage(video=video, is_original=False, is_forked=True) language.language = self.cleaned_data['language'] language.save() try: old_version = language.subtitleversion_set.all()[:1].get() version_no = old_version.version_no + 1 except ObjectDoesNotExist: old_version = None version_no = 0 if not self.is_version_same(old_version, parser): version = SubtitleVersion(language=language, version_no=version_no, datetime_started=datetime.now(), user=self.user, note=u'Uploaded', is_forked=True, time_change=1, text_change=1) version.save() ids = [] for i, item in enumerate(parser): id = int(random.random() * 10e12) while id in ids: id = int(random.random() * 10e12) ids.append(id) caption = Subtitle(**item) caption.version = version caption.subtitle_id = str(id) caption.subtitle_order = i + 1 caption.save() version.save() version.update_percent_done() language.update_complete_state() language.save() if language.is_original: video.update_complete_state() video.release_writelock() video.save() return language