示例#1
0
 def test_unicode_in_and_out(self):
     # load the srt file
     fixtures_dir = os.path.join(settings.PROJECT_ROOT,
                                 'apps/subtitles/fixtures')
     rst_data = open(os.path.join(fixtures_dir, 'unicode.srt'), 'r')
     # upload it
     form = SubtitlesUploadForm(self.user,
                                self.video,
                                True,
                                data={
                                    'language_code': 'en',
                                },
                                files={
                                    'draft':
                                    SimpleUploadedFile(
                                        rst_data.name, rst_data.read())
                                })
     self.assertTrue(form.is_valid())
     version = form.save()
     # get what's stored to make sure we didn't screw up unicode chars
     storage = version.get_subtitles()
     subs = [x for x in storage.subtitle_items()]
     expected_text = u"Ciò che voglio fare oggi"
     # it's there represented on the dfxp
     self.assertEqual(subs[0].text, expected_text)
     generated = unicode(SRTGenerator(storage))
     # when outputting it, we're getting the same thing back
     self.assertIn(expected_text, generated)
示例#2
0
def upload_subtitles(request):
    if not check_upload_subtitles_permissions(request):
        path = request.get_full_path()
        return redirect_to_login(path)

    output = {'success': False}
    video = Video.objects.get(id=request.POST['video'])
    form = SubtitlesUploadForm(request.user,
                               video,
                               True,
                               request.POST,
                               request.FILES,
                               initial={
                                   'primary_audio_language_code':
                                   video.primary_audio_language_code
                               },
                               allow_all_languages=True)

    try:
        if form.is_valid():
            version = form.save()
            output['success'] = True
            output['next'] = version.subtitle_language.get_absolute_url()
            output['msg'] = ugettext(
                u'Thank you for uploading. '
                u'It may take a minute or so for your subtitles to appear.')
        else:
            output['errors'] = form.get_errors()
    except AlreadyEditingException, e:
        output['errors'] = {'__all__': [force_unicode(e.msg)]}