The chuck command returns a random Chuck Norris joke from the ChuckNorris.io API.

Usage

!chuck

Example response

For St. Patrick's day, Chuck Norris caught and crucified a Leprechaun, drank six kegs of green beer and roundhouse kicked the mayor of Boston.

Source code

import requests
from data import error_messages
 
def access_api(url, parameter, error_message, headers=None):
    if headers:
        raw = requests.get(url, headers=headers)
    else:
        raw = requests.get(url)
    if raw.status_code == 200:
        try:
            data = raw.json()
            response = data[parameter]
        except (requests.exceptions.JSONDecodeError, KeyError):
            response = str(f"{error_message}")
        except Exception as e:
            response = str(f"{error_message} (Error {str(e)})")
    else:
        response = str(f"{error_message} (HTTP {raw.status_code})")
 
    return response
 
def chuck():
    return access_api(
        "https://api.chucknorris.io/jokes/random", 
        "value", 
        error_messages["chuck"]
    )