Esempio n. 1
0
    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
Esempio n. 2
0
    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