summaryrefslogtreecommitdiff
path: root/backend/decky_loader/helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/decky_loader/helpers.py')
-rw-r--r--backend/decky_loader/helpers.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/backend/decky_loader/helpers.py b/backend/decky_loader/helpers.py
index f4005cc5..21ba5ce5 100644
--- a/backend/decky_loader/helpers.py
+++ b/backend/decky_loader/helpers.py
@@ -1,3 +1,4 @@
+from platform import version
import re
import ssl
import uuid
@@ -14,7 +15,7 @@ from aiohttp import ClientSession
from .localplatform import localplatform
from .enums import UserType
from logging import getLogger
-from packaging.version import Version
+from packaging.version import Version # type: ignore
REMOTE_DEBUGGER_UNIT = "steam-web-debug-portforward.service"
@@ -36,12 +37,13 @@ def get_csrf_token():
@middleware
async def csrf_middleware(request: Request, handler: Handler):
if str(request.method) == "OPTIONS" or \
- request.headers.get('Authentication') == csrf_token or \
+ request.headers.get('X-Decky-Auth') == csrf_token or \
str(request.rel_url) == "/auth/token" or \
str(request.rel_url).startswith("/plugins/load_main/") or \
str(request.rel_url).startswith("/static/") or \
str(request.rel_url).startswith("/steam_resource/") or \
str(request.rel_url).startswith("/frontend/") or \
+ str(request.rel_url.path) == "/fetch" or \
str(request.rel_url.path) == "/ws" or \
assets_regex.match(str(request.rel_url)) or \
dist_regex.match(str(request.rel_url)) or \
@@ -61,24 +63,27 @@ def mkdir_as_user(path: str):
localplatform.chown(path)
# Fetches the version of loader
+# TODO THIS IS ABSOLUTELY TERRIBLE AND NEVER SHOULDVE BEEN MERGED! packaging HAS NO TYPES AND WE COULD LITERALLY JUST USE A REGEX!!!!! REWRITE THIS!!!!!!!!!!!!!
def get_loader_version() -> str:
try:
# Normalize Python-style version to conform to Decky style
- v = Version(importlib.metadata.version("decky_loader"))
+ v = Version(importlib.metadata.version("decky_loader")) # type: ignore
- version_str = f'v{v.major}.{v.minor}.{v.micro}'
+ version_str = f'v{v.major}.{v.minor}.{v.micro}' # type: ignore
- if v.pre:
- version_str += f'-pre{v.pre[1]}'
+ if v.pre: # type: ignore
+ version_str += f'-pre{v.pre[1]}' # type: ignore
- if v.post:
- version_str += f'-dev{v.post}'
+ if v.post: # type: ignore
+ version_str += f'-dev{v.post}' # type: ignore
return version_str
except Exception as e:
logger.warn(f"Failed to execute get_loader_version(): {str(e)}")
return "unknown"
+user_agent = f"Decky/{get_loader_version()} (https://decky.xyz)"
+
# returns the appropriate system python paths
def get_system_pythonpaths() -> list[str]:
try: