update scpt
This commit is contained in:
		
							
								
								
									
										48
									
								
								scpt/at.zsh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								scpt/at.zsh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| #!/bin/zsh | ||||
|  | ||||
| d=${0:a:h} | ||||
|  | ||||
| source $d/src/tag.zsh | ||||
| source $d/src/func.zsh | ||||
|  | ||||
| at-env | ||||
| case $1 in | ||||
| 	version|v) | ||||
| 		at-version | ||||
| 		;; | ||||
| 	uri|u) | ||||
| 		at-uri $2 | ||||
| 		;; | ||||
| 	did|d) | ||||
| 		at-did $2 | ||||
| 		;; | ||||
| 	collection|c) | ||||
| 		at-collection $2 $3 | ||||
| 		;; | ||||
| 	at-docs|docs) | ||||
| 		at-docs | ||||
| 		;; | ||||
| 	cid) | ||||
| 		at-cid $2 $3 | ||||
| 		;; | ||||
| 	login|l) | ||||
| 		at-login $2 $3 | ||||
| 		;; | ||||
| 	refresh|r) | ||||
| 		at-refresh | ||||
| 		;; | ||||
| 	session|s) | ||||
| 		at-session | ||||
| 		;; | ||||
| 	profile|pro) | ||||
| 		at-profile | ||||
| 		;; | ||||
| 	*) | ||||
| 		echo "${help[@]}" | ||||
| 		echo "${host[@]}" | ||||
| 		echo "${lexicon[@]}" | ||||
| 		echo "${github[@]}" | ||||
| 		echo "${tag[@]}" | ||||
| 		;; | ||||
| esac | ||||
| at-unset | ||||
							
								
								
									
										135
									
								
								scpt/src/func.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								scpt/src/func.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,135 @@ | ||||
| function at-env() { | ||||
| 	host=bsky.social | ||||
| 	handle_syui=syui.ai | ||||
| 	handle_yui=yui.syui.ai | ||||
| 	did_yui=did:plc:4hqjfn7m6n5hno3doamuhgef | ||||
| 	did_syui=did:plc:uqzpqmrjnptsxezjx4xuh2mn | ||||
| 	handle=$handle_yui | ||||
| 	did=$did_yui | ||||
| 	at_uri=at://$handle_yui/ai.syui.game.user/syui | ||||
| 	docs_uri=https://docs.bsky.app/docs/api | ||||
| 	did=`echo $at_uri|cut -d / -f 3` | ||||
| 	collection=`echo $at_uri|cut -d / -f 4` | ||||
| 	rkey=`echo $at_uri|cut -d / -f 5` | ||||
| 	d=${0:a:h} | ||||
| 	f=~/.config/.at-zsh.json | ||||
| 	if [ -f $f ];then | ||||
| 		token=`cat $f|jq -r .accessJwt` | ||||
| 		did=`cat $f|jq -r .did` | ||||
| 		handle=`cat $f|jq -r .handle` | ||||
| 		actor=$did | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| function at-unset() { | ||||
| 	unset t password token refresh | ||||
| } | ||||
|  | ||||
| function at-version() { | ||||
| 	curl -sL ${host}/xrpc/_health |jq . | ||||
| } | ||||
|  | ||||
| function at-uri() { | ||||
| 	if [ -n "$1" ];then | ||||
| 		at_uri=$1 | ||||
| 	fi | ||||
| 	req=/xrpc/com.atproto.repo.getRecord | ||||
| 	url=https://${host}${req} | ||||
| 	did=`echo $at_uri|cut -d / -f 3` | ||||
| 	collection=`echo $at_uri|cut -d / -f 4` | ||||
| 	rkey=`echo $at_uri|cut -d / -f 5` | ||||
| 	curl -sL "$url?repo=$did&collection=$collection&rkey=$rkey"|jq . | ||||
| } | ||||
|  | ||||
| function at-did() { | ||||
| 	if [ -n "$1" ];then | ||||
| 		handle=$1 | ||||
| 	fi | ||||
| 	req=/xrpc/com.atproto.repo.describeRepo | ||||
| 	url=https://${host}${req} | ||||
| 	curl -sL "$url?repo=$handle"|jq . | ||||
| } | ||||
|  | ||||
| function at-collection() { | ||||
| 	reverse=false | ||||
| 	if [ -n "$1" ];then | ||||
| 		at_uri=$1 | ||||
| 	fi | ||||
| 	if [ "$2" = "-r" ];then | ||||
| 		reverse=true | ||||
| 	fi | ||||
| 	req=/xrpc/com.atproto.repo.listRecords | ||||
| 	url=https://${host}${req} | ||||
| 	did=`echo $at_uri|cut -d / -f 3` | ||||
| 	collection=`echo $at_uri|cut -d / -f 4` | ||||
| 	curl -sL "$url?repo=$did&collection=$collection&reverse=$reverse"|jq . | ||||
| } | ||||
|  | ||||
| function at-docs() { | ||||
| 	for i in $lexicon; do | ||||
| 		req=`echo $i|tr '.' '-'|sed 's/[A-Z]/-&/g'|tr '[A-Z]' '[a-z]'` | ||||
| 		url=$docs_uri/$req | ||||
| 		echo $url | ||||
| 	done | ||||
| } | ||||
|  | ||||
| function at-login() { | ||||
| 	if [ -z "$1" ] || [ -z "$2" ];then | ||||
| 		echo handle password | ||||
| 		exit | ||||
| 	fi | ||||
| 	handle=$1 | ||||
| 	password=$2 | ||||
| 	echo $password | ||||
| 	json="{\"identifier\":\"$handle\",\"password\":\"$password\"}" | ||||
| 	req=/xrpc/com.atproto.server.createSession | ||||
| 	url=https://${host}${req} | ||||
| 	if [ ! -d ~/.config ];then | ||||
| 		mkdir -p ~/.config | ||||
| 	fi | ||||
| 	t=`curl -sL -X POST -H "Content-Type: application/json" -d $json $url` | ||||
| 	if echo $t |jq .;then | ||||
| 		echo $t >! $f | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| function at-refresh() { | ||||
| 	echo $f | ||||
| 	token=`cat $f|jq -r .refreshJwt` | ||||
| 	req=/xrpc/com.atproto.server.refreshSession | ||||
| 	url=https://${host}${req} | ||||
| 	t=`curl -sL -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $token" $url` | ||||
| 	if echo $t |jq .;then | ||||
| 		echo $t >! $f | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| function at-cid() { | ||||
| 	did=`at-did $1|jq -r .did` | ||||
| 	cid=$2 | ||||
| 	req=/xrpc/com.atproto.sync.getBlob | ||||
| 	url="https://${host}${req}?did=${did}&cid=${cid}" | ||||
| 	curl -sL $url | ||||
| } | ||||
|  | ||||
| function at-session() { | ||||
| 	req=/xrpc/com.atproto.server.getSession | ||||
| 	url=https://${host}${req} | ||||
| 	t=`curl -sL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $token" $url` | ||||
| 	if ! echo $t |jq .;then | ||||
| 		echo refresh | ||||
| 		t=`at-refresh` | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| function at-profile() { | ||||
| 	if [ ! -f $f ];then | ||||
| 		echo login | ||||
| 		exit | ||||
| 	else | ||||
| 		t=`at-session` | ||||
| 	fi | ||||
| 	req=/xrpc/app.bsky.actor.getProfile | ||||
| 	url="https://${host}${req}?actor=$did" | ||||
| 	curl -sL -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $token" $url|jq . | ||||
| } | ||||
							
								
								
									
										39
									
								
								scpt/src/tag.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								scpt/src/tag.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| help=( | ||||
| 	at.zsh v | ||||
| 	at.zsh d handle | ||||
| 	at.zsh u at-uri | ||||
| 	at.zsh c at-uri -r | ||||
| 	at.zsh docs | ||||
| 	at.zsh l handle password | ||||
| 	at.zsh r | ||||
| 	at.zsh s | ||||
| 	at.zsh cid handle cid | ||||
| 	at.zsh pro | ||||
| 	at.zsh col ai.syui.game.user self | ||||
| ) | ||||
| host=( | ||||
| 	bsky.social | ||||
| 	public.api.bsky.app | ||||
| 	plc.directory | ||||
| ) | ||||
| lexicon=( | ||||
| 	# https://github.com/bluesky-social/atproto/tree/main/lexicons | ||||
| 	com.atproto.repo.describeRepo | ||||
| 	com.atproto.repo.getRecord | ||||
| 	com.atproto.repo.listRecords | ||||
| 	com.atproto.identity.resolveHandle | ||||
| 	com.atproto.server.createSession | ||||
| 	com.atproto.server.refreshSession | ||||
| 	com.atproto.server.getSession | ||||
| 	com.atproto.sync.getBlob | ||||
|  app.bsky.actor.getProfile | ||||
| ) | ||||
| github=( | ||||
| 	https://github.com/bluesky-social/atproto | ||||
| 	https://github.com/bluesky-social/social-app | ||||
| 	https://github.com/bluesky-social/feed-generator | ||||
| 	https://github.com/bluesky-social/jetstream | ||||
| 	https://github.com/bluesky-social/indigo | ||||
| 	https://github.com/did-method-plc/did-method-plc | ||||
| ) | ||||
| tag=( at bsky bsync pds bgs plc ozone feed jetstream social-app oauth ) | ||||
		Reference in New Issue
	
	Block a user