diff --git a/README.md b/README.md index 0e81200..67c007d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # Nintendo Switch Online Rich Presence +## ⚠️ Disclaimer +Nintendo has recently updated Nintendo Switch Online (NSO), breaking support for all third-party tools. Apps like s3s, nxapi, NSO-RPC and others are currently not working. + +Updating authentication credentials **isn’t possible** at the moment, and these services may remain unusable. + +**_Do not contact Nintendo about this issue._** + +--- + *Display your Nintendo Switch game status on Discord!* This README will be split into two sections: diff --git a/client/api/__init__.py b/client/api/__init__.py index 99966a9..5a62462 100644 --- a/client/api/__init__.py +++ b/client/api/__init__.py @@ -300,11 +300,12 @@ def __init__(self, userInfo, userLang, accessToken, guid): if 'error' in self.imink or self.imink.get('error') is not None: iminkApiError = ( - 'Unable to authenticate with imink. \n\n' - 'The F Calculation API may be experiencing issues or this build of NSO-RPC is outdated \n' - 'Please try the most upto date build of NSO-RPC before submitting an issue. \n' - 'Please check the website for more details: \n' - 'https://status.imink.app/ \n' + 'Authentication with imink failed. \n\n' + 'Please follow these steps to resolve the issue:\n' + '1. First, check the "F Calculation API" status on the imink API status page: https://status.imink.app/ \n' + '2. If the F Calculation API is operational, ensure you are using the latest version of NSO-RPC.\n' + '3. If the issue persists, join the Discord or open a GitHub issue for further assistance.\n' + 'Thank you for your patience!' ) raise RuntimeError(iminkApiError) from None else: diff --git a/client/app.py b/client/app.py index 267e10b..9459b4c 100644 --- a/client/app.py +++ b/client/app.py @@ -38,9 +38,11 @@ try: import win32com.client import winshell + import pywintypes + import pywintypes except: - print('Trying to Install required modules: "pypiwin32" and "winshell"\n') - os.system(" ".join([sys.executable, "-m pip install pypiwin32 winshell"])) + print('Trying to Install required modules: "pypiwin32","pywintypes","winshell"\n') + os.system(" ".join([sys.executable, "-m pip install pypiwin32 winshell pywintypes"])) from win32com.client import Dispatch from winshell import Shortcut @@ -481,7 +483,12 @@ def changeState(self): raise e # Set user image - client.api.user.image = loadPix(client.api.user.imageUri) + if client.api.user and client.api.user.imageUri: + client.api.user.image = loadPix(client.api.user.imageUri) + else: + client.api.user = User() + client.api.user.image = QPixmap(getPath('default.png')) + radius = 150 rounded = QPixmap(client.api.user.image.size())