X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/c7d2e4daae13c7c1100ec0d42ace0e8c34b5ae24..5420ae6bee0c35cfab499555054e350507c21fe1:/src/archive/views.py?ds=sidebyside diff --git a/src/archive/views.py b/src/archive/views.py index f237fab..3da6bb4 100644 --- a/src/archive/views.py +++ b/src/archive/views.py @@ -1,14 +1,11 @@ -# Create your views here. - from datetime import datetime import os import os.path from urllib.parse import quote from archive import settings -from django.contrib.auth import logout from django.contrib.auth.decorators import permission_required -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db.models import Q, Max from django.http import Http404, HttpResponse from django.shortcuts import render, redirect, get_object_or_404 @@ -186,23 +183,29 @@ def cancel_publishing(request, aid): # TODO: cancel tasks audiobook.mp3_status = None audiobook.ogg_status = None + audiobook.youtube_status = None audiobook.save() return redirect(file_managed, aid) def download(request, aid, which="source"): - if which not in ("source", "mp3", "ogg"): + if which not in ("source", "mp3", "ogg", 'mkv'): raise Http404 audiobook = get_object_or_404(models.Audiobook, id=aid) - file_ = getattr(audiobook, "%s_file" % which) + field = which + if which == 'mkv': + field = 'youtube' + file_ = getattr(audiobook, "%s_file" % field) if not file_: raise Http404 ext = file_.path.rsplit('.', 1)[-1] - response = HttpResponse(mimetype='application/force-download') + response = HttpResponse(content_type='application/force-download') response['Content-Disposition'] = "attachment; filename*=UTF-8''%s.%s" % ( quote(audiobook.title.encode('utf-8'), safe=''), ext) - response['X-Sendfile'] = file_.path.encode('utf-8') + with open(file_.path, 'rb') as f: + response.write(f.read()) + #response['X-Sendfile'] = file_.path.encode('utf-8') return response