diff --git a/content/posts/2023-03-05-mastodon-snippets/index.md b/content/posts/2023-03-05-mastodon-snippets/index.md new file mode 100644 index 0000000..42c8e88 --- /dev/null +++ b/content/posts/2023-03-05-mastodon-snippets/index.md @@ -0,0 +1,115 @@ ++++ +title = 'Mastodon snippets' +summary = 'snip snip' +date = '2023-03-05T12:39:35+0100' +categories = ['computerstuff'] +tags = ['mastodon','server','linux','reminders'] +draft = true + ++++ + +Very short und maybe a bit chaotic... + +## clear media files + +https://paste.opensuse.org/pastes/365542654a1e + + +```bash +#!/bin/bash +export PATH="$HOME/.rbenv/bin:$PATH" +eval "$(rbenv init -)" +export RAILS_ENV=production + +exec > /home/mastodon/live/log/prune.log 2>&1 + +/home/mastodon/live/bin/tootctl statuses remove +/home/mastodon/live/bin/tootctl media remove --days=5 +/home/mastodon/live/bin/tootctl media remove --prune-profiles --days=60 +/home/mastodon/live/bin/tootctl preview_cards remove --days=15 +/home/mastodon/live/bin/tootctl media remove-orphans +/home/mastodon/live/bin/tootctl cache clear +/home/mastodon/live/bin/tootctl media usage +date +``` + +## further removal of profile pics + +https://paste.opensuse.org/pastes/4ecbf69cdee7 + +```bash +#!/usr/bin/env bash +# Kept only the accounts compression and jpeg optimization + +cd /home/mastodon/live/public/system/cache +find -name '*.jpg' -print0 | xargs -0 jpegoptim --verbose --preserve --threshold=1 --max=45 +find -name '*.jpeg' -print0 | xargs -0 jpegoptim --verbose --preserve --threshold=1 --max=45 + +cd /home/mastodon/live/public/system/cache/accounts +find -name '*.png' -print0 | xargs -0 pngquant --verbose --ext=.png --force --speed 10 --quality 45-50 --skip-if-larger +``` + +## moar stuff in RAILS_ENV cnosole + +https://github.com/mastodon/mastodon/issues/14681 + +There are several scripts executable with `RAILS_ENV=production bundle exec rails c`, +for convenience laid out here with minor corrections. **Do not execute these +without understanding what they do!**: + +Deleting all cached media attachments from external servers to allow web app +to refetch them when they are queried. At least on my instance this is reaaally +slow, takes tens of seconds per attachment (is this the same as tootctl media +remove?): + +```ruby +MediaAttachment.cached.where.not(remote_url: '').each do |attachment| + attachment.file.destroy + attachment.thumbnail.destroy + attachment.save +end +``` + +Deleting and redownloading all cached remote emojis. This apparently has a +problem that the local URLs for the cached emojis change, and the URLs aren't +updated to the fetched profile headers. I suppose this should be done before +the next steps, assuming the cached local emoji URLs are set up correctly to +the profile headers and names at the time of fetching. This doesn't seem to +work though, maybe tootctl emoji purge --remote-only would be better: + +```ruby +CustomEmoji.remote.where.not(image_file_name: nil).where.not(image_remote_url: '').each do |emoji| + emoji.image.destroy + emoji.image.save + emoji.download_image! +end +``` + +Deleting all remote profile avatars, and refetching them. Are these two the +same as tootctl accounts refresh --all?: + +```ruby +Account.remote.where.not(avatar_file_name: nil).where.not(avatar_remote_url: '').each do |a| + a.avatar.destroy + a.save + a.download_avatar! +end +``` + +Deleting all remote profile headers, and refetching them. Hopefully this +uses/updates the newly fetched local cached emoji URLs, and also includes the +profile name as they often contain emojis: + +```ruby +Account.remote.where.not(header_file_name: nil).where.not(header_remote_url: '').each do |a| + a.header.destroy + a.save + a.download_header! +end +``` + +It would be awesome to get tooling for these to tootctl. That said, I'm not +entirely sure if destroying the entities is necessary before downloading them +again, and perhaps we could use remove_entity_cache instead. I'm not very well +acquainted with the codebase. +