From 685297e2f2b4fe52059a11714e719bfe7fb4cbf1 Mon Sep 17 00:00:00 2001 From: Brett Williams Date: Thu, 21 Dec 2023 20:46:55 -0600 Subject: [PATCH] Use alphanumeric API tokens instead of ints --- src/api/api_server.py | 6 +++--- src/utilities/misc_helper.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/api/api_server.py b/src/api/api_server.py index 934ba9d..916e89f 100755 --- a/src/api/api_server.py +++ b/src/api/api_server.py @@ -25,7 +25,7 @@ from src.engines.engine_manager import EngineManager from src.render_queue import RenderQueue, JobNotFoundError from src.utilities.config import Config from src.utilities.misc_helper import system_safe_path, current_system_os, current_system_cpu, \ - current_system_os_version + current_system_os_version, num_to_alphanumeric from src.utilities.server_helper import generate_thumbnail_for_job from src.utilities.zeroconf_server import ZeroconfServer @@ -56,8 +56,8 @@ def jobs_json(): try: hash_token = request.args.get('token', None) all_jobs = [x.json() for x in RenderQueue.all_jobs()] - job_cache_token = str(json.dumps(all_jobs).__hash__()) - + job_cache_int = int(json.dumps(all_jobs).__hash__()) + job_cache_token = num_to_alphanumeric(job_cache_int) if hash_token and hash_token == job_cache_token: return [], 204 # no need to update else: diff --git a/src/utilities/misc_helper.py b/src/utilities/misc_helper.py index d53cc73..13199f5 100644 --- a/src/utilities/misc_helper.py +++ b/src/utilities/misc_helper.py @@ -3,6 +3,7 @@ import os import platform import shutil import socket +import string import subprocess from datetime import datetime @@ -156,3 +157,19 @@ def is_localhost(comparison_hostname): return comparison_hostname == local_hostname except AttributeError: return False + + +def num_to_alphanumeric(num): + # List of possible alphanumeric characters + characters = string.ascii_letters + string.digits + + # Make sure number is positive + num = abs(num) + + # Convert number to alphanumeric + result = "" + while num > 0: + num, remainder = divmod(num, len(characters)) + result += characters[remainder] + + return result[::-1] # Reverse the result to get the correct alphanumeric string