Disable login_required.
[audio.git] / apps / archive / tasks.py
old mode 100755 (executable)
new mode 100644 (file)
index bbabe6c..1b2be74
@@ -4,6 +4,7 @@ import mimetypes
 import os
 import os.path
 import pipes
+import stat
 import subprocess
 from tempfile import NamedTemporaryFile
 from time import sleep
@@ -58,6 +59,7 @@ class AudioFormatTask(Task):
             ExistingFile(file_name),
             save=False
             )
+        os.chmod(getattr(audiobook, field).path, stat.S_IREAD|stat.S_IWRITE|stat.S_IRGRP|stat.S_IROTH)
         Audiobook.objects.filter(pk=audiobook.pk).update(
             **{field: getattr(audiobook, field)})
 
@@ -91,7 +93,7 @@ class AudioFormatTask(Task):
         except SystemExit, e:
             raise cls.RemoteOperationError
 
-    def run(self, aid):
+    def run(self, aid, publish=True):
         aid = int(aid)
         audiobook = Audiobook.objects.get(id=aid)
         self.set_status(aid, status.ENCODING)
@@ -111,10 +113,13 @@ class AudioFormatTask(Task):
         self.set_tags(audiobook, out_file.name)
         self.set_status(aid, status.SENDING)
 
-        self.put(audiobook, out_file.name)
+        if publish:
+            self.put(audiobook, out_file.name)
+            self.published(aid)
+        else:
+            self.set_status(aid, None)
 
         self.save(audiobook, out_file.name)
-        self.published(aid)
 
     def on_failure(self, exc, task_id, args, kwargs, einfo):
         aid = (args[0], kwargs.get('aid'))[0]