import random import string import requests def get_image(boards, nsfw=False): """ get_image(boards, nsfw=False) Returns a URL to an image on reddit from a random board in the boards list as long as it is hosted on one of the domains in the domains list """ # Spoof our user agent with each request so we dont get rate limited random_user_agent = "".join( random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(5) ) if isinstance(boards, list): boards = random.choice(boards) request_string = f"https://reddit.com/r/{boards}/random.json" if not nsfw: # Append this header to the request. Tells the API to only return SFW results request_string += "?obey_over18=true" response = requests.get( request_string, headers={"User-agent": random_user_agent} ).json()[0]["data"]["children"][0]["data"] image_url = "https://rxddit.com" + response["permalink"] if "youtu.be" in response["url"]: image_url = response["url"] return image_url