from apiclient import api_call
from archive.constants import status
from archive.models import Audiobook
-from archive.settings import BUILD_PATH, COVER_IMAGE, UPLOAD_URL
+from archive.settings import COVER_IMAGE, UPLOAD_URL
from archive.utils import ExistingFile
@classmethod
def set_status(cls, aid, status):
Audiobook.objects.filter(pk=aid).update(
- **{'%s_status' % cls.ext: status})
+ **{'%s_status' % cls.prefix: status})
@staticmethod
def encode(in_path, out_path):
@classmethod
def set_tags(cls, audiobook, file_name):
- tags = getattr(audiobook, "get_%s_tags" % cls.ext)()['tags']
+ tags = getattr(audiobook, "get_%s_tags" % cls.prefix)()['tags']
if not tags.get('flac_sha1'):
tags['flac_sha1'] = audiobook.get_source_sha1()
audio = File(file_name)
@classmethod
def save(cls, audiobook, file_name):
- field = "%s_file" % cls.ext
+ field = "%s_file" % cls.prefix
getattr(audiobook, field).save(
"%d.%s" % (audiobook.pk, cls.ext),
ExistingFile(file_name),
@classmethod
def published(cls, aid):
kwargs = {
- "%s_published_tags" % cls.ext: F("%s_tags" % cls.ext),
- "%s_tags" % cls.ext: None,
- "%s_published" % cls.ext: datetime.now(),
- '%s_status' % cls.ext: None,
+ "%s_published_tags" % cls.prefix: F("%s_tags" % cls.prefix),
+ "%s_tags" % cls.prefix: None,
+ "%s_published" % cls.prefix: datetime.now(),
+ '%s_status' % cls.prefix: None,
}
Audiobook.objects.filter(pk=aid).update(**kwargs)
@classmethod
def put(cls, user, audiobook, path):
- tags = getattr(audiobook, "get_%s_tags" % cls.ext)()
+ tags = getattr(audiobook, "get_%s_tags" % cls.prefix)()
data = {
'book': tags['url'],
'type': cls.ext,
user = User.objects.get(id=uid)
- try:
- os.makedirs(BUILD_PATH)
- except OSError as e:
- if e.errno == errno.EEXIST:
- pass
- else:
- raise
-
- out_file = NamedTemporaryFile(delete=False, prefix='%d-' % aid, suffix='.%s' % self.ext, dir=BUILD_PATH)
+ out_file = NamedTemporaryFile(delete=False, prefix='%d-' % aid, suffix='.%s' % self.ext)
out_file.close()
self.encode(audiobook.source_file.path, out_file.name)
self.set_status(aid, status.TAGGING)
class Mp3Task(AudioFormatTask):
- ext = 'mp3'
+ prefix = ext = 'mp3'
# these shouldn't be staticmethods
def id3_text(tag, text):
class OggTask(AudioFormatTask):
- ext = 'ogg'
+ prefix = ext = 'ogg'
@staticmethod
def encode(in_path, out_path):