From 5024838868c7783b772c3603b1c4e47e94db9525 Mon Sep 17 00:00:00 2001 From: Ezri Brimhall Date: Tue, 8 Oct 2024 15:38:55 -0600 Subject: [PATCH] Added API interaction with Python --- joke-api/joke-api.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 joke-api/joke-api.py diff --git a/joke-api/joke-api.py b/joke-api/joke-api.py new file mode 100755 index 0000000..e135dd4 --- /dev/null +++ b/joke-api/joke-api.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +import requests +import json +import time + + +def download(url): + response = requests.get(url) + content = response.content.decode("utf-8") + return content + + +def main(): + iterations = 0 + while iterations < 3: + iterations += 1 + programming_jokes = {} + while len(programming_jokes) < 5: + # Parse the JSON response + jokes = json.loads( + download("https://official-joke-api.appspot.com/jokes/random/10") + ) + # Filter to just programming jokes and insert them + for joke in jokes: + if joke["type"] == "programming": + programming_jokes[joke["id"]] = joke + for joke in programming_jokes.values(): + print(joke["setup"]) + for _ in range(3): + print(".", end="", flush=True) + time.sleep(1) + print() + print(joke["punchline"]) + time.sleep(2) + + +if __name__ == "__main__": + main()