#!/bin/zsh function at_env_arg() { handle=ai.syui.ai col=ai.syui.verse.user rkey=self host=syu.is } function at_env() { d=${0:a:h} cd $d 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