From b54419702e94bb82b9a9f03ab374fa61f59c5df0 Mon Sep 17 00:00:00 2001 From: WhatDidYouExpect <89535984+WhatDidYouExpect@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:32:59 +0200 Subject: [PATCH 1/2] no cache --- modules/globalvars.py | 2 +- modules/version.py | 43 ++++++++++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/modules/globalvars.py b/modules/globalvars.py index eed4b14..9f6e2e7 100644 --- a/modules/globalvars.py +++ b/modules/globalvars.py @@ -49,7 +49,7 @@ arch = platform.machine() slash_commands_enabled = True # 100% broken, its a newer enough version so its probably enabled by default.... fix this at somepoint or hard code it in goober central code launched = False latest_version = "0.0.0" -local_version = "2.3.0" +local_version = "2.3.1" os.environ['gooberlocal_version'] = local_version REACT = os.getenv("REACT") if get_git_branch() == "dev": diff --git a/modules/version.py b/modules/version.py index a925217..b8e8013 100644 --- a/modules/version.py +++ b/modules/version.py @@ -5,6 +5,8 @@ import subprocess import sys import logging import json +import time +import random logger = logging.getLogger("goober") launched = False @@ -37,19 +39,34 @@ def auto_update(branch='main', remote='origin'): def get_latest_version_info(): try: - response = requests.get(UPDATE_URL, timeout=5) - if response.status_code == 200: - # Try parsing JSON manually, so i dont have to maintain goober central anymore - try: - return response.json() - except json.JSONDecodeError: - logger.error(f"{RED}{_('version_error')} JSON decode failed{RESET}") - return None - else: - logger.error(f"{RED}{_('version_error')} {response.status_code}{RESET}") + unique_suffix = f"{int(time.time())}_{random.randint(0, 9999)}" + url = f"{UPDATE_URL}?_={unique_suffix}" + + curl_cmd = [ + "curl", + "-s", + "-H", "Cache-Control: no-cache", + "-H", "Pragma: no-cache", + url + ] + + result = subprocess.run(curl_cmd, capture_output=True, text=True, timeout=5) + content = result.stdout + + if result.returncode != 0: + logger.error(f"curl failed with return code {result.returncode}") return None - except requests.RequestException as e: - logger.error(f"{RED}{_('version_error')} {e}{RESET}") + + try: + data = json.loads(content) + return data + except json.JSONDecodeError: + logger.error("JSON decode failed") + logger.error(content[:500]") + return None + + except Exception as e: + logger.error(f"Exception in get_latest_version_info: {e}") return None # Check if an update is available and perform update if needed @@ -82,7 +99,7 @@ def check_for_update(): logger.info(f"{YELLOW}{_('changelog').format(VERSION_URL=VERSION_URL)}{RESET}") auto_update() elif beta == True: - logger.warning(f"You are running an \"unstable\" version of Goober, do not expect it to work properly.\nVersion {local_version}{RESET}") + logger.warning(f"You are running an \"unstable\" version of Goober, do not expect it to work properly.\nVersion {local_version}\nServer: {latest_version}{RESET}") elif local_version > latest_version: logger.warning(f"{_('modification_warning')}") elif local_version == latest_version: From f16a9e732d1909ae13fd342dfd13f96f2cfa4157 Mon Sep 17 00:00:00 2001 From: WhatDidYouExpect <89535984+WhatDidYouExpect@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:33:14 +0200 Subject: [PATCH 2/2] idiot.. --- modules/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/version.py b/modules/version.py index b8e8013..8ca5bc9 100644 --- a/modules/version.py +++ b/modules/version.py @@ -62,7 +62,7 @@ def get_latest_version_info(): return data except json.JSONDecodeError: logger.error("JSON decode failed") - logger.error(content[:500]") + logger.error(content[:500]) return None except Exception as e: