Skip to content

Instantly share code, notes, and snippets.

@xandkar
Last active September 25, 2015 17:52
Show Gist options
  • Save xandkar/387c6f744ad30d8bfc0a to your computer and use it in GitHub Desktop.
Save xandkar/387c6f744ad30d8bfc0a to your computer and use it in GitHub Desktop.
#! /bin/bash
set -e
slackbot_responses_add() {
declare -r team=$1
declare -r token="token=$2"
declare -r triggers="triggers=$3"
declare -r responses="responses=$4"
declare -r data="$triggers&$responses&$token&set_active=true&_attempts=1"
declare -r endpoint="https://$team.slack.com/api/slackbot.responses.add"
curl "$endpoint" --compressed --data "$data"
}
main() {
declare -r team="$1"
declare -r token="$2"
phrases[100]='Continue'
phrases[101]='Switching%20Protocols'
phrases[102]='Processing'
phrases[200]='OK'
phrases[201]='Created'
phrases[202]='Accepted'
phrases[203]='Non-Authoritative%20Information'
phrases[204]='No%20Content'
phrases[205]='Reset%20Content'
phrases[206]='Partial%20Content'
phrases[207]='Multi-Status'
phrases[208]='Already%20Reported'
phrases[226]='IM%20Used'
phrases[300]='Multiple%20Choices'
phrases[301]='Moved%20Permanently'
phrases[302]='Found'
phrases[303]='See%20Other'
phrases[304]='Not%20Modified'
phrases[305]='Use%20Proxy'
phrases[306]='Switch%20Proxy'
phrases[307]='Temporary%20Redirect'
phrases[308]='Permanent%20Redirect'
phrases[308]='Resume%20Incomplete'
phrases[404]='error%20on%20German%20Wikipedia'
phrases[400]='Bad%20Request'
phrases[401]='Unauthorized'
phrases[402]='Payment%20Required'
phrases[403]='Forbidden'
phrases[404]='Not%20Found'
phrases[405]='Method%20Not%20Allowed'
phrases[406]='Not%20Acceptable'
phrases[407]='Proxy%20Authentication%20Required'
phrases[408]='Request%20Timeout'
phrases[409]='Conflict'
phrases[410]='Gone'
phrases[411]='Length%20Required'
phrases[412]='Precondition%20Failed'
phrases[413]='Payload%20Too%20Large'
phrases[414]='Request-URI%20Too%20Long'
phrases[415]='Unsupported%20Media%20Type'
phrases[416]='Requested%20Range%20Not%20Satisfiable'
phrases[417]='Expectation%20Failed'
phrases[418]='Im%20a%20teapot'
phrases[419]='Authentication%20Timeout'
phrases[420]='Method%20Failure'
phrases[420]='Enhance%20Your%20Calm'
phrases[421]='Misdirected%20Request'
phrases[422]='Unprocessable%20Entity'
phrases[423]='Locked'
phrases[424]='Failed%20Dependency'
phrases[425]='Unordered%20collection'
phrases[426]='Upgrade%20Required'
phrases[428]='Precondition%20Required'
phrases[429]='Too%20Many%20Requests'
phrases[431]='Request%20Header%20Fields%20Too%20Large'
phrases[440]='Login%20Timeout'
phrases[444]='No%20Response'
phrases[449]='Retry%20With'
phrases[450]='Blocked%20by%20Windows%20Parental%20Controls'
phrases[451]='Unavailable%20For%20Legal%20Reasons'
phrases[451]='Redirect'
phrases[494]='Request%20Header%20Too%20Large'
phrases[495]='Cert%20Error'
phrases[496]='No%20Cert'
phrases[497]='HTTP%20to%20HTTPS'
phrases[498]='Token%20expired/invalid'
phrases[499]='Client%20Closed%20Request'
phrases[499]='Token%20required'
phrases[500]='Internal%20Server%20Error'
phrases[501]='Not%20Implemented'
phrases[502]='Bad%20Gateway'
phrases[503]='Service%20Unavailable'
phrases[504]='Gateway%20Timeout'
phrases[505]='HTTP%20Version%20Not%20Supported'
phrases[506]='Variant%20Also%20Negotiates'
phrases[507]='Insufficient%20Storage'
phrases[508]='Loop%20Detected'
phrases[509]='Bandwidth%20Limit%20Exceeded'
phrases[510]='Not%20Extended'
phrases[511]='Network%20Authentication%20Required'
phrases[520]='Unknown%20Error'
phrases[522]='Origin%20Connection%20Time-out'
phrases[598]='Network%20read%20timeout%20error'
phrases[599]='Network%20connect%20timeout%20error'
codes_available=`
lftp -c 'lftp https://http.cat/; ls' \
| awk '{print $3}' \
| grep '^[1-5][0-9][0-9]$'
`
for code in $codes_available; do
triggers="${phrases[$code]}"
responses="https%3A%2F%2Fhttp.cat%2F$code.jpg"
slackbot_responses_add "$team" "$token" "$triggers" "$responses"
done
}
main $1 $2
@xandkar
Copy link
Author

xandkar commented Sep 22, 2015

Dependencies:

  • bash
  • lftp
  • curl

Usage:

$ ./slackbot_add_http_cats.sh $YOUR_TEAM_NAME $YOUR_TOKEN

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment