You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB
Bash

#!/usr/bin/env bash
USER=rwxrob
EMAIL=rob@rwx.gg
ID=1210114652
update () {
local status="$1" image="$2" data media_id
if [[ -n "${image}" ]]; then
media_id=$(twurl -X POST -H upload.twitter.com \
'/1.1/media/upload.json?media_category=TWEET_IMAGE&additional_owners='${ID} \
-f "${image}" -F media | jq .media_id )
data="media_ids=${media_id}&status=${status}"
echo "$data"
else
data="status=${status}"
fi
twurl '/1.1/statuses/update.json' -d "${data}" | jq .created_at
}
tweets () {
twurl "/2/tweets?ids=$1"
}
############################## Main Command #############################
subcommand="${1-usage}"
shift 2>/dev/null
if [ -z "$subcommand" ]; then
usage
exit 1
fi
commands () {
echo ${commands[@]}
}
declare -a commands=(commands update tweets)
for i in ${commands[@]}; do
if [[ "$i" == "$subcommand" ]]; then
"$subcommand" "$@"
exit 0
fi
done
######################### Tab Completion Context ########################
# remember COMP_LINE is changed by shift
if [ -n "$COMP_LINE" ]; then
for cmd in ${commands[@]}; do
[[ "${cmd:0:${#1}}" == "$1" ]] && echo $cmd
done
exit 0
fi