summaryrefslogtreecommitdiff
path: root/fix_queue.sh
blob: 77580b998b76ee46624a9e4f35fa0bb0d7e5fa76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

# ===== CONFIG =====
USERNAME="$1"
RAILS_ENV=production
cd /home/mastodon/live || exit 1

if [[ -z "$USERNAME" ]]; then
  echo "❌ Usage: $0 <username>"
  exit 1
fi

echo "🔍 Looking up account ID for @$USERNAME..."
ACCOUNT_ID=$(sudo -u mastodon -H bundle exec rails runner "
acct = Account.find_by(username: '$USERNAME')
puts acct&.id || 'not_found'
")

if [[ "$ACCOUNT_ID" == "not_found" ]]; then
  echo "❌ Account @$USERNAME not found."
  exit 1
fi

echo "🗑️ Deleting Redis cache for home timeline..."
sudo -u mastodon -H redis-cli DEL feed:home:$ACCOUNT_ID

echo "🧱 Rebuilding timeline from followed accounts..."
sudo -u mastodon -H bundle exec rails runner "
acct = Account.find_by(username: '$USERNAME')
if acct
  FeedInsertWorker.push_bulk(acct.following.pluck(:id)) do |follower_id|
    [follower_id, acct.id]
  end
  puts '✅ Timeline repopulation enqueued.'
end
"

echo "✅ Done. Home timeline for @$USERNAME reset and rebuilt."