def _trash_photo(self, photo): id, folder = self._new_trash(photo.__parent__) # Remember how to reinstantiate on restore path = model_path(photo) with open(os.path.join(folder, '.restore'), 'wb') as f: f.write('photo|') f.write(path) # Move photo src = photo.fspath src_path, src_file = os.path.split(src) dst = os.path.join(folder, src_file) shutil.move(src, dst) # Move metadata src = photo._metadata._file src_path, src_file = os.path.split(src) dst = os.path.join(folder, src_file) shutil.move(src, dst) # Transformed photo can be recreated, so we delete that transformed_path = photo._transformed_path() if os.path.exists(transformed_path): os.remove(transformed_path) return id
def trash_photos_in_album(self, album, photos=None): if photos is None: photos = album.photos() id, folder = self._new_trash(album) # Remember how to reinstantiate on restore path = model_path(album) with open(os.path.join(folder, '.restore'), 'wb') as f: f.write('photos|') f.write(path) for photo in photos: # Move photo src = photo.fspath src_path, src_file = os.path.split(src) dst = os.path.join(folder, src_file) shutil.move(src, dst) # Move metadata src = photo._metadata._file src_path, src_file = os.path.split(src) dst = os.path.join(folder, src_file) shutil.move(src, dst) # Transformed photo can be recreated, so we delete that transformed_path = photo._transformed_path() if os.path.exists(transformed_path): os.remove(transformed_path) return id