Adding intro and outro.
[audio.git] / src / archive / views.py
index cafda5d..87eee5b 100644 (file)
@@ -157,20 +157,9 @@ def move_to_new(request, filename):
 def publish(request, aid, publish=True):
     """ mark file for publishing """
     audiobook = get_object_or_404(models.Audiobook, id=aid)
-    tags = {
-        'name': audiobook.title,
-        'url': audiobook.url,
-        'tags': audiobook.new_publish_tags(),
-        }
-    audiobook.set_mp3_tags(tags)
-    audiobook.set_ogg_tags(tags)
-    audiobook.mp3_status = audiobook.ogg_status = status.WAITING
-    audiobook.save()
-    # isn't there a race here?
-    audiobook.mp3_task = tasks.Mp3Task.delay(request.user.id, aid, publish).task_id
-    audiobook.ogg_task = tasks.OggTask.delay(request.user.id, aid, publish).task_id
-    audiobook.save()
-
+    audiobook.prepare_for_publish()
+    if publish:
+        audiobook.publish(request.user)
     return redirect(file_managed, aid)
 
 
@@ -302,13 +291,12 @@ class BookView(ListView):
         qs = models.Audiobook.objects.filter(slug=self.kwargs["slug"]).order_by(
             "index"
         )
-        total = 0
         last_vol = None
         for b in qs:
-            if last_vol != b.youtube_volume:
-                last_vol = b.youtube_volume
-                total = 0
-            total = b.total = total + b.duration
+            if last_vol is None or last_vol.youtube_volume != b.youtube_volume:
+                last_vol = b
+                b.total = 0
+            last_vol.total += b.duration
         return list(qs)
 
 
@@ -322,7 +310,7 @@ def book_youtube_volume(request, aid):
     audiobook.youtube_volume = new_vol
     audiobook.save()
     
-    for a in models.Audiobook.objects.filter(youtube_volume=cur_vol, index__gt=audiobook.index).order_by('index'):
+    for a in models.Audiobook.objects.filter(slug=slug, youtube_volume=cur_vol, index__gt=audiobook.index).order_by('index'):
         if a.youtube_volume != cur_vol:
             break
         a.youtube_volume = new_vol