Plume Development 2021-03-29

Command to remove duplicated images

Hi, I came back! And I confirmed questions from you. I should have answered them at Gitea, GitHub and Matrix room, but if you have not replied yet, mention me again.

Now I’m enjoying development of Plume again.

Bug fix to prevent duplicate posts on timeline

Riker actors including search actor and remote fetch actor have executed their tasks many times ever. I fixed it so that they execute tasks only once.

Upserting remote posts and images

Plume have tried to save duplicated posts when it fetches remote instance’s post ever. Actually database’s constraint have prevented the duplication and Plume have logged

thread ‘pool-thread-#5’ panicked at ‘Article from remote user couldn’t be saved: Db(DatabaseError(UniqueViolation, “duplicate key value violates unique constraint "post_unique_slug"”))’

Now it upserts (updates or inserts) remote posts into local database and the log doesn’t appear.

This fix requires database migration. Run

plm migration run

before run the latest version.

Command to remove duplicated images

Image explosion problem (see posts of 2021-02-15 and 2021-02-22) was stopped but images have been remaining. I created a command to remove some of them. How to use it is:

For poeple who build Plume themselves

Assuming you use revision fe92d95f6c or earlier.

  1. Back up database and media
  2. Run git fetch
  3. Check out remove-dup-images branch
  4. Run migration: cargo run -p plume-cli --bin=plm -- migration run
  5. Run the command: cargo run -p plume-cli --bin=remove-dup-images

For Docker users

  1. Back up database and media
  2. Pull remove-dup-images image: docker pull plumeorg/plume:remove-dup-images
  3. Move to directory including .env for Plume
  4. Run migration: docker exec $CONTAINER plm migration run
  5. Run the command: docker-compose exec plume remove-dup-images

I don’t indend to include remove-dup-image command into stable release. This is a problem occuring between v0.6.0 and the next release. Stable releases are not affected from it.

Some other bugs were fixed, too.

Contribution wanted!

Some poeple might think to contribute to Plume but have no idea what to do. I introduce a thing to contribute easily.

@pullopen reported that Plume doesn’t show all posts at each author’s page. They should be shown with pagination. A pagination is very popular pattern of web development. Therefore you can contribute to this issue if you can write Rust and have experience of web development.


I have felt a modecum of relief by releasing remove-dup-image. Next thing to do is preparing v0.7.0, I think.