import logging import requests from log.Log import Log from version import VERSION HEADERS = {'User-agent': f"DiscordMinecraft-Authenticator ({VERSION})(peery.coding@gmail.com)"} def is_valid_user_name(user_name: str) -> bool: """ Checks if user_name is a valid minecraft player account by querying api.mojang.com if the profile exists :param user_name: :return: """ log = logging.getLogger("McAPI") url = f"https://api.mojang.com/users/profiles/minecraft/{user_name}" response = requests.get(url, headers=HEADERS) if response.status_code == 404: log.info(f"Looked up user name \"{user_name}\". Failed!") return False elif response.status_code == 200: try: uuid = response.json()['id'] except KeyError: log.critical(f"Unexpected response from {url}! Response ({response.status_code}): {response.json()}") return False log.info(f"Looked up user name \"{user_name}\" (UUID: \"{uuid}\"). Success!") return True else: log.error(f"Got unexpected status code from user_name lookup \"{user_name}\": {response.status_code}") return False def get_uuid_from_user_name(user_name: str) -> str: """ Checks if user_name is a valid minecraft player account by querying api.mojang.com if the profile exists :param user_name: :return: """ log = logging.getLogger("McAPI") url = f"https://api.mojang.com/users/profiles/minecraft/{user_name}" response = requests.get(url, headers=HEADERS) if response.status_code == 404: log.info(f"Looked up user name \"{user_name}\". Failed!") return None elif response.status_code == 200: try: uuid = response.json()['id'] log.info(f"Looked up user name \"{user_name}\" (UUID: \"{uuid}\"). Success!") return uuid except KeyError: log.critical(f"Unexpected response from {url}! Response ({response.status_code}): {response.json()}") return None else: log.error(f"Got unexpected status code from user_name lookup \"{user_name}\": {response.status_code}") return None if __name__ == "__main__": Log.setup("DEBUG") print(is_valid_user_name("MausKomant"))