98 lines
2.0 KiB
Bash
Executable File
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
|