diff --git a/pandora/archive/models.py b/pandora/archive/models.py index 52e33957..7ed69840 100644 --- a/pandora/archive/models.py +++ b/pandora/archive/models.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 -from __future__ import division +from __future__ import division, with_statement import os.path import re @@ -243,12 +243,13 @@ class File(models.Model): resolution=config['resolutions'][0], format=config['formats'][0]) if created: - stream.video.save(stream.name(), chunk) + stream.video.name = stream.name() + with open(stream.video.path, 'w') as f: + f.write(chunk.read()) else: - f = open(stream.video.path, 'a') - #FIXME: should check that chunk_id/offset is right - f.write(chunk.read()) - f.close() + with open(stream.video.path, 'a') as f: + #FIXME: should check that chunk_id/offset is right + f.write(chunk.read()) if done: stream.available = True stream.save() diff --git a/pandora/archive/views.py b/pandora/archive/views.py index c690adf3..ae769cb4 100644 --- a/pandora/archive/views.py +++ b/pandora/archive/views.py @@ -136,6 +136,8 @@ def upload(request): #float required? position = float(os.path.splitext(name)[0]) fr, created = models.Frame.objects.get_or_create(file=f, position=position) + if fr.frame: + fr.frame.delete() fr.frame.save(name, frame) os.chmod(fr.frame.path, 0644) f.item.select_frame() diff --git a/pandora/item/models.py b/pandora/item/models.py index d2c4f367..53642663 100644 --- a/pandora/item/models.py +++ b/pandora/item/models.py @@ -971,6 +971,12 @@ class Item(models.Model): for f in glob(path.replace('.jpg', '*.jpg')): os.unlink(f) + def save_poster(self, data): + self.poster.name = self.path('poster.jpg') + poster = self.poster.path + with open(poster, 'w') as f: + f.write(data) + def prefered_poster_url(self): external_posters = self.external_data.get('posters', {}) service = self.poster_source @@ -996,12 +1002,12 @@ class Item(models.Model): url = self.prefered_poster_url() if url: data = ox.net.readUrl(url) - self.poster.save('poster.jpg', ContentFile(data)) + self.save_poster(data) elif os.path.exists(poster): with open(poster) as f: data = f.read() if data: - self.poster.save('poster.jpg', ContentFile(data)) + self.save_poster(data) def make_siteposter(self): poster = self.path('siteposter.jpg')