43 lines
1.3 KiB
Bash
Executable File
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
|