1
0
Files
verse/bin/verse.zsh
2025-08-01 01:58:33 +09:00

98 lines
2.0 KiB
Bash
Executable File

#!/bin/zsh
function at_env_arg() {
handle=syui.syui.ai
col=ai.syui.verse.user
rkey=self
host=syu.is
}
function at_env() {
d=${0:a:h}
dd=${0:a:h:h}
pds=$host
f=$d/token.json
if [ ! -f $f ];then
echo password
read password
else
did=`cat $f|jq -r .did`
access=`cat $f|jq -r .accessJwt`
refresh=`cat $f|jq -r .refreshJwt`
fi
j_verse=`cat $dd/json/verse.json`
j_user=`cat $dd/json/user.json`
case $col in
ai.syui.verse)
j=${j_verse}
;;
ai.syui.verse.user)
j=${j_user}
;;
esac
if ! echo $j|jq .;then
exit
fi
if [ -n "`which gdate`" ];then
date=`gdate --iso-8601=seconds`
else
date=`date --iso-8601=seconds`
fi
}
function at_create_session(){
if [ ! -f $f ];then
req=com.atproto.server.createSession
url=https://$pds/xrpc/$req
curl -sL -X POST -H "Content-Type: application/json" -d "{\"identifier\":\"$handle\",\"password\":\"$password\"}" $url >! $f
did=`cat $f|jq -r .did`
access=`cat $f|jq -r .accessJwt`
refresh=`cat $f|jq -r .refreshJwt`
fi
}
function at_refresh_session(){
req=com.atproto.server.refreshSession
url=https://${pds}/xrpc/$req
curl -sL -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $refresh" $url >! $f
did=`cat $f|jq -r .did`
access=`cat $f|jq -r .accessJwt`
refresh=`cat $f|jq -r .refreshJwt`
}
function at_put_record() {
req=com.atproto.repo.putRecord
url=https://$pds/xrpc/$req
# jqでrecordを構築
record=$(echo "$j" | jq ". + {\"createdAt\": \"$date\", \"updatedAt\": \"$date\"}")
json=$(jq -n \
--arg repo "$handle" \
--arg did "$did" \
--arg collection "$col" \
--arg rkey "$rkey" \
--argjson record "$record" \
'{
"repo": $repo,
"did": $did,
"collection": $collection,
"rkey": $rkey,
"record": $record
}')
echo $json
if echo $json|jq . ;then
t=`curl -sL -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $access" -d "$json" $url`
echo $t|jq .
fi
}
at_env_arg
at_env
at_create_session
at_refresh_session
at_put_record