def video(file_and_save=True, **kwargs): """Return a saved video.""" u = None if 'creator' not in kwargs: u = user(save=True) defaults = { 'title': 'Some title', 'description': 'Some description', 'creator': u } defaults.update(kwargs) vid = Video(**defaults) if not file_and_save: return vid if 'file' not in kwargs: with open('kitsune/gallery/tests/media/test.webm') as f: up_file = File(f) vid.webm.save(up_file.name, up_file, save=False) with open('kitsune/gallery/tests/media/test.ogv') as f: up_file = File(f) vid.ogv.save(up_file.name, up_file, save=False) with open('kitsune/gallery/tests/media/test.flv') as f: up_file = File(f) vid.flv.save(up_file.name, up_file, save=False) vid.save() return vid
def video(file_and_save=True, **kwargs): """Return a saved video.""" u = None if 'creator' not in kwargs: u = user(save=True) defaults = {'title': 'Some title', 'description': 'Some description', 'creator': u} defaults.update(kwargs) vid = Video(**defaults) if not file_and_save: return vid if 'file' not in kwargs: with open('kitsune/gallery/tests/media/test.webm') as f: up_file = File(f) vid.webm.save(up_file.name, up_file, save=False) with open('kitsune/gallery/tests/media/test.ogv') as f: up_file = File(f) vid.ogv.save(up_file.name, up_file, save=False) with open('kitsune/gallery/tests/media/test.flv') as f: up_file = File(f) vid.flv.save(up_file.name, up_file, save=False) vid.save() return vid
def create_video(files, user): """Given an uploaded file, a user, and other data, it creates a Video""" try: vid = Video.objects.filter(creator=user, is_draft=True) # Delete other drafts, if any: vid.exclude(pk=vid[0].pk).delete() vid = vid[0] except IndexError: # No drafts, create one vid = Video(creator=user, is_draft=True) # Async uploads fallback to these defaults. vid.title = get_draft_title(user) vid.description = u'Autosaved draft.' vid.locale = settings.WIKI_DEFAULT_LANGUAGE for name in files: up_file = files[name] check_file_size(up_file, settings.VIDEO_MAX_FILESIZE) # name is in (webm, ogv, flv) sent from upload_video(), below getattr(vid, name).save(up_file.name, up_file, save=False) if 'thumbnail' == name: # Save poster too, we shrink it later. vid.poster.save(up_file.name, up_file, save=False) vid.save() if 'thumbnail' in files: thumb = vid.thumbnail (width, height) = _scale_dimensions(thumb.width, thumb.height) else: width = settings.THUMBNAIL_PROGRESS_WIDTH height = settings.THUMBNAIL_PROGRESS_HEIGHT delete_url = reverse('gallery.delete_media', args=['video', vid.id]) return {'name': up_file.name, 'url': vid.get_absolute_url(), 'thumbnail_url': vid.thumbnail_url_if_set(), 'width': width, 'height': height, 'delete_url': delete_url}