aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/edit/views.py
diff options
context:
space:
mode:
authorsaksham1115 <saksham115@gmail.com>2016-06-03 11:55:46 +0000
committersaksham1115 <saksham115@gmail.com>2016-07-19 17:29:08 +0000
commit19ba17d95066e55afde4db125cf139aae1831650 (patch)
treec1c64b13ec66a14a34bbd0c7913f47e2c6d68457 /mediagoblin/edit/views.py
parent74bc86732e016f5926f5654525485afb6411bb8d (diff)
downloadmediagoblin-19ba17d95066e55afde4db125cf139aae1831650.tar.lz
mediagoblin-19ba17d95066e55afde4db125cf139aae1831650.tar.xz
mediagoblin-19ba17d95066e55afde4db125cf139aae1831650.zip
Subtitle built over attachments : working
Diffstat (limited to 'mediagoblin/edit/views.py')
-rw-r--r--mediagoblin/edit/views.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py
index 521359f5..dfc256e2 100644
--- a/mediagoblin/edit/views.py
+++ b/mediagoblin/edit/views.py
@@ -181,6 +181,64 @@ def edit_attachments(request, media):
else:
raise Forbidden("Attachments are disabled")
+@get_media_entry_by_id
+@require_active_login
+def edit_subtitles(request, media):
+ if mg_globals.app_config['allow_subtitles']:
+ form = forms.EditSubtitlesForm(request.form)
+
+ # Add any subtitles
+ if 'subtitle_file' in request.files \
+ and request.files['subtitle_file']:
+ if mimetypes.guess_type(
+ request.files['subtitle_file'].filename)[0] in \
+ UNSAFE_MIMETYPES:
+ public_filename = secure_filename('{0}.notsafe'.format(
+ request.files['subtitle_file'].filename))
+ else:
+ public_filename = secure_filename(
+ request.files['subtitle_file'].filename)
+
+ subtitle_public_filepath \
+ = mg_globals.public_store.get_unique_filepath(
+ ['media_entries', six.text_type(media.id), 'subtitle',
+ public_filename])
+
+ subtitle_public_file = mg_globals.public_store.get_file(
+ subtitle_public_filepath, 'wb')
+
+ try:
+ subtitle_public_file.write(
+ request.files['subtitle_file'].stream.read())
+ finally:
+ request.files['subtitle_file'].stream.close()
+
+ media.subtitle_files.append(dict(
+ name=form.subtitle_name.data \
+ or request.files['subtitle_file'].filename,
+ filepath=subtitle_public_filepath,
+ created=datetime.utcnow(),
+ ))
+
+ media.save()
+
+ messages.add_message(
+ request,
+ messages.SUCCESS,
+ _("You added the subttile %s!") %
+ (form.subtitle_name.data or
+ request.files['subtitle_file'].filename))
+
+ return redirect(request,
+ location=media.url_for_self(request.urlgen))
+ return render_to_response(
+ request,
+ 'mediagoblin/edit/subtitles.html',
+ {'media': media,
+ 'form': form})
+ else:
+ raise Forbidden("Subtitles are disabled")
+
@require_active_login
def legacy_edit_profile(request):
"""redirect the old /edit/profile/?username=USER to /u/USER/edit/"""