Files
log/bin/delete-chat-records.zsh
2025-06-14 21:55:28 +09:00

43 lines
1.3 KiB
Bash
Executable File

#!/bin/zsh
#[collection] [pds] [did] [token]
set -e
f=~/.config/syui/ai/bot/token.json
default_collection="ai.syui.log.chat"
default_pds="bsky.social"
default_did=`cat $f|jq -r .did`
default_token=`cat $f|jq -r .accessJwt`
default_refresh=`cat $f|jq -r .refreshJwt`
curl -sL -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $default_refresh" https://$default_pds/xrpc/com.atproto.server.refreshSession >! $f
default_token=`cat $f|jq -r .accessJwt`
collection=${1:-$default_collection}
pds=${2:-$default_pds}
did=${3:-$default_did}
token=${4:-$default_token}
delete_record() {
local rkey=$1
local req="com.atproto.repo.deleteRecord"
local url="https://$pds/xrpc/$req"
local json="{\"collection\":\"$collection\", \"rkey\":\"$rkey\", \"repo\":\"$did\"}"
curl -sL -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $token" \
-d "$json" \
"$url"
if [ $? -eq 0 ]; then
echo " ✓ Deleted: $rkey"
else
echo " ✗ Failed: $rkey"
fi
}
rkeys=($(curl -sL "https://$default_pds/xrpc/com.atproto.repo.listRecords?repo=$did&collection=$collection&limit=100"|jq -r ".records[]?.uri"|cut -d '/' -f 5))
for rkey in "${rkeys[@]}"; do
echo $rkey
delete_record $rkey
done