make commands regular
This commit is contained in:
76
mc
76
mc
@ -3,36 +3,39 @@
|
||||
readonly base_url="https://api.my-mc.link/"
|
||||
readonly headers=( -H "Accept: application/json" -H "Content-Type: application/json" -H "x-my-mc-auth: ${MY_MC_API_KEY}" )
|
||||
|
||||
|
||||
# command format: '<endpoint> <method> [options]'
|
||||
|
||||
declare -rA commands=(
|
||||
[hello]='GET'
|
||||
[time]='GET'
|
||||
[stats]='GET'
|
||||
[log]='GET'
|
||||
[start]='GET'
|
||||
[stop]='GET'
|
||||
[restart]='GET'
|
||||
[my-link]='GET'
|
||||
[my-geyser-link]='GET'
|
||||
[my-sftp]='GET'
|
||||
[my-hash]='GET'
|
||||
[my-geyser-hash]='GET'
|
||||
[my-hash-sftp]='GET'
|
||||
[list-players]='GET'
|
||||
[website]='GET'
|
||||
[map]='GET'
|
||||
[status-minecraft]='GET'
|
||||
[status-bedrock]='GET'
|
||||
[status-sftp]='GET'
|
||||
[ban]='POST {"username": "%s"}'
|
||||
[unban]='POST {"username": "%s"}'
|
||||
[say]='POST {"message": "%s"}'
|
||||
[tell]='POST {"username": "%s", "message": "%s"}'
|
||||
[console]='POST {"command": "%s"}'
|
||||
[give]='POST {"username": "%s", "item": "%s", "amount": "%s"}'
|
||||
[install]='POST {"mod": "%s"}'
|
||||
[uninstall]='POST {"mod": "%s"}'
|
||||
[search]='POST {"mod": "%s"}'
|
||||
[mod-list]='GET'
|
||||
[hello]='hello GET'
|
||||
[time]='time GET'
|
||||
[stats]='stats GET'
|
||||
[log]='log GET'
|
||||
[start]='start GET'
|
||||
[stop]='stop GET'
|
||||
[restart]='restart GET'
|
||||
[my-link]='my-link GET'
|
||||
[my-geyser-link]='my-geyser-link GET'
|
||||
[my-sftp]='my-sftp GET'
|
||||
[my-hash]='my-hash GET'
|
||||
[my-geyser-hash]='my-geyser-hash GET'
|
||||
[my-hash-sftp]='my-hash-sftp GET'
|
||||
[list-players]='list-players GET'
|
||||
[website]='website GET'
|
||||
[map]='map GET'
|
||||
[status-minecraft]='status/Minecraft GET'
|
||||
[status-bedrock]='status/Bedrock GET'
|
||||
[status-sftp]='status/SFTP GET'
|
||||
[ban]='ban POST {"username": "%s"}'
|
||||
[unban]='unban POST {"username": "%s"}'
|
||||
[say]='say POST {"message": "%s"}'
|
||||
[tell]='tell POST {"username": "%s", "message": "%s"}'
|
||||
[console]='console POST {"command": "%s"}'
|
||||
[give]='give POST {"username": "%s", "item": "%s", "amount": "%s"}'
|
||||
[install]='install POST {"mod": "%s"}'
|
||||
[uninstall]='uninstall POST {"mod": "%s"}'
|
||||
[search]='search POST {"mod": "%s"}'
|
||||
[mod-list]='mod-list GET'
|
||||
)
|
||||
|
||||
function first() {
|
||||
@ -60,27 +63,26 @@ function usage() {
|
||||
printf "Positional arguments will fill the JSON objects with values from left to right.\n\n"
|
||||
printf "COMMANDS:\n"
|
||||
for command in "${!commands[@]}"; do
|
||||
printf "\t ${command} $(rest ${commands[${command}]})\n"
|
||||
printf "\t ${command} $(rest $(rest ${commands[${command}]}))\n"
|
||||
done
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
# remove command from arg list while preserving quoted strings.
|
||||
|
||||
args=("$@")
|
||||
# remove command from arg list while preserving quoted strings.
|
||||
args=("${args[@]:1}")
|
||||
|
||||
for command in "${!commands[@]}"; do
|
||||
if [[ "$1" == "${command}" ]]; then
|
||||
if [[ "$(first "${commands[$1]}")" == "POST" ]]; then
|
||||
curl -sS "${headers[@]}" -X "$(first "${commands[$1]}")" "${base_url}${command}" -d "$(printf "$(rest ${commands[$1]})\n" "${args[@]}")"
|
||||
echo ""
|
||||
elif [[ "${command}" =~ ^"status" ]]; then
|
||||
curl -sS "${headers[@]}" -X "$(first "${commands[$1]}")" "${base_url}status/$(status_format ${command})"
|
||||
if [[ "$(first $(rest ${commands[$1]}))" == "POST" ]]; then
|
||||
curl -sS "${headers[@]}" -X "$(first $(rest ${commands[$1]}))" "${base_url}$(first "${commands[$1]}")" -d "$(printf "$(rest $(rest ${commands[$1]}))\n" "${args[@]}")"
|
||||
echo ""
|
||||
else
|
||||
curl -sS "${headers[@]}" -X "$(first "${commands[$1]}")" "${base_url}${command}"
|
||||
curl -sS "${headers[@]}" -X "$(first $(rest ${commands[$1]}))" "${base_url}$(first "${commands[$1]}")"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
Reference in New Issue
Block a user