You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
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")) |