v1
This commit is contained in:
commit
35485fab2c
50
shitty_api.sh
Executable file
50
shitty_api.sh
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
accs=$(cat ~/.config/clemmy/accounts.csv)
|
||||||
|
i=0
|
||||||
|
for line in ${accs[*]}; do
|
||||||
|
IFS=, read insts[$i] tokes[$i] <<< $line
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
INSTANCE=${insts[0]}
|
||||||
|
TOKE=${tokes[0]}
|
||||||
|
|
||||||
|
baseurl="https://$INSTANCE/api/v3/"
|
||||||
|
# Please don't abuse jq like this
|
||||||
|
showcomment='(.post | (.id | tostring)+" "+(.name | tostring)),
|
||||||
|
(.comment | (.parent_id | tostring)+"->"+(.id | tostring))+", "+(.creator.display_name // .creator.name)+":",
|
||||||
|
((.comment // .post) | .published,
|
||||||
|
(.body // .content)),
|
||||||
|
""'
|
||||||
|
|
||||||
|
comments=".[] | $showcomment"
|
||||||
|
|
||||||
|
#Generics
|
||||||
|
get(){ curl -s "$baseurl$1?${*:3}" | jq "$2"; }
|
||||||
|
getauth(){ get "$1" "$2" "auth=$TOKE&${*:3}"; }
|
||||||
|
post(){ curl -s "$baseurl$1" --json "$(echo ${*:2} | jq .+{\"auth\":\"$TOKE\"})"; }
|
||||||
|
|
||||||
|
#Utils
|
||||||
|
getbody(){ a=$(cat); body=${a//\"/\\\"}; }
|
||||||
|
|
||||||
|
actions="notifs notifs2 comments freepost shitpost follow unfollow following deref whoami login"
|
||||||
|
#Endpoints.
|
||||||
|
notifs(){ getauth "user/replies" ".replies | $comments"; }
|
||||||
|
notifs2(){ getauth "user/mention"; }
|
||||||
|
comments(){ getauth "post" "(.post_view | $showcomment), (.comments | reverse | $comments)" "id=$1"; }
|
||||||
|
freepost(){ getbody; post "post" "{\"community_id\":$1,\"name\":\"$2\",\"body\":\"$body\"}"; }
|
||||||
|
shitpost(){ getbody; postid=$1; parentid=$2; shift 2; post "comment" "{\"post_id\":$postid,\"parent_id\":$parentid,\"content\":\"$body\"}"; }
|
||||||
|
follow(){ post "community/follow" "{\"community_id\":$1,\"follow\":true}"; }
|
||||||
|
unfollow(){ post "community/follow" "{\"community_id\":$1,\"follow\":false}"; }
|
||||||
|
following(){ getauth "post/list" ".posts | $comments" "type_=Subscribed"; }
|
||||||
|
deref(){ getauth "resolve_object" "" "q=$*"; }
|
||||||
|
whoami(){ echo $INSTANCE $TOKE; }
|
||||||
|
login(){ post "user/login" "{\"username_or_email\":\"$1\",\"password\":\"$2\"}"; }
|
||||||
|
|
||||||
|
while getopts "a:h" o;do case "${o}" in
|
||||||
|
a) INSTANCE=${insts[$OPTARG]}; TOKE=${tokes[$OPTARG]};;
|
||||||
|
h) echo $actions; exit;;
|
||||||
|
esac done
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
$*
|
Loading…
Reference in New Issue
Block a user