def media_post_save(sender, **kwargs): obj = kwargs['instance'] # ingest fingerprint if (AUTOCREATE_FPRINT and obj.master) and not obj.fprint_ingested: ingest_fprint_for_media.apply_async((obj.pk,)) if not obj.folder: log.debug('no directory for media %s - create it.' % obj.pk) directory = get_dir_for_object(obj) abs_directory = os.path.join(settings.MEDIA_ROOT, directory) try: if not os.path.exists(abs_directory): os.makedirs(abs_directory, 0755) obj.folder = directory log.debug('creating directory: %s' % abs_directory) except Exception as e: log.warning('unable to create directory: %s - %s' % (abs_directory, e)) obj.folder = None obj.status = 99 # invalidate cache invalidate_obj(obj)
def media_post_save(sender, **kwargs): obj = kwargs['instance'] # ingest fingerprint if (AUTOCREATE_FPRINT and obj.master) and not obj.fprint_ingested: ingest_fprint_for_media.apply_async((obj, )) if not obj.folder: log.debug('no directory for media %s - create it.' % obj.pk) directory = get_dir_for_object(obj) abs_directory = os.path.join(settings.MEDIA_ROOT, directory) try: if not os.path.exists(abs_directory): os.makedirs(abs_directory, 0755) obj.folder = directory log.debug('creating directory: %s' % abs_directory) except Exception as e: log.warning('unable to create directory: %s - %s' % (abs_directory, e)) obj.folder = None obj.status = 99 # invalidate cache invalidate_obj(obj)
def download_and_save_image(self, image_url): """ we cannot `use obj.image.save()` here - because this update the db timestamps and also trigger the `post_save` signal. so adding the file to the instance has to be done 'manually' """ # 1. define files / directories _filename = 'logo.jpg' _dir = get_dir_for_object(self.obj) _path = os.path.join(_dir, _filename) _dir_abs = os.path.join(MEDIA_ROOT, _dir) _path_abs = os.path.join(MEDIA_ROOT, _path) # 2. create directory if absent if not os.path.isdir(_dir_abs): log.debug('create directory: {}'.format(_dir_abs)) os.makedirs(_dir_abs) # 3. download image log.debug('save {} to {}'.format(image_url, _path_abs)) _f = urllib.URLopener() _f.retrieve(image_url, _path_abs) _f.close() # 4. update item if os.path.isfile(_path_abs): type(self.obj).objects.filter(pk=self.obj.pk).update( main_image=_path) # 5. return reloaded object return type(self.obj).objects.get(pk=self.obj.pk)
def download_and_save_image(self, image_url): """ we cannot `use obj.image.save()` here - because this update the db timestamps and also trigger the `post_save` signal. so adding the file to the instance has to be done 'manually' """ # 1. define files / directories _filename = 'logo.jpg' _dir = get_dir_for_object(self.obj) _path = os.path.join(_dir, _filename) _dir_abs = os.path.join(MEDIA_ROOT, _dir) _path_abs = os.path.join(MEDIA_ROOT, _path) # 2. create directory if absent if not os.path.isdir(_dir_abs): log.debug('create directory: {}'.format(_dir_abs)) os.makedirs(_dir_abs) # 3. download image log.debug('save {} to {}'.format(image_url, _path_abs)) _f = urllib.URLopener() _f.retrieve(image_url, _path_abs) _f.close() # 4. update item if os.path.isfile(_path_abs): type(self.obj).objects.filter(pk=self.obj.pk).update( main_image=_path ) # 5. return reloaded object return type(self.obj).objects.get(pk=self.obj.pk)
def upload_image_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'logo%s' % extension.lower())
def upload_image_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'logo%s' % extension.lower())
def upload_mixdown_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'mixdown{}'.format(extension.lower()))
def upload_image_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'playlists{}'.format(extension.lower()))
def upload_mixdown_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'mixdown{}'.format(extension.lower()))
def upload_image_to(instance, filename): filename, extension = os.path.splitext(filename) return os.path.join(get_dir_for_object(instance), 'playlists{}'.format(extension.lower()))