From 792c416274e2f66e17010a8c520c4a6c789b205a Mon Sep 17 00:00:00 2001 From: codeking Date: Wed, 18 Sep 2024 21:34:21 +0200 Subject: [PATCH] Improve application version retrieval logic --- core/controllers/ApplicationController.py | 4 ++++ core/controllers/ApplicationVersionController.py | 4 +++- core/models/session/Application.py | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/controllers/ApplicationController.py b/core/controllers/ApplicationController.py index b584639..285688f 100644 --- a/core/controllers/ApplicationController.py +++ b/core/controllers/ApplicationController.py @@ -21,6 +21,10 @@ class ApplicationController: def get(code: str): return Application.find(code) + @staticmethod + def get_all(): + return Application.all() + @staticmethod def launch(version: ApplicationVersion, profile: SessionProfile, port_number: int = None, profile_observer: Optional[ProfileObserver] = None): diff --git a/core/controllers/ApplicationVersionController.py b/core/controllers/ApplicationVersionController.py index 9c9558f..ebe0430 100644 --- a/core/controllers/ApplicationVersionController.py +++ b/core/controllers/ApplicationVersionController.py @@ -1,3 +1,4 @@ +from core.controllers.ApplicationController import ApplicationController from core.models.session.ApplicationVersion import ApplicationVersion from core.observers.ApplicationVersionObserver import ApplicationVersionObserver from core.observers.ConnectionObserver import ConnectionObserver @@ -18,9 +19,10 @@ class ApplicationVersionController: @staticmethod def fetch(proxies: Optional[dict] = None): + applications = ApplicationController.get_all() application_versions = [] - for application_code in 'firefox', 'brave', 'chromium': + for application_code in [application.code for application in applications]: application_version_subset = WebServiceApiService.get_application_versions(application_code, proxies) diff --git a/core/models/session/Application.py b/core/models/session/Application.py index 35755bd..e00d04c 100644 --- a/core/models/session/Application.py +++ b/core/models/session/Application.py @@ -34,6 +34,11 @@ class Application(Model): Model._create_table_if_not_exists(table_name=_table_name, table_definition=_table_definition) return Model._query_one('SELECT * FROM applications WHERE code = ? LIMIT 1', Application.factory, [code]) + @staticmethod + def all(): + Model._create_table_if_not_exists(table_name=_table_name, table_definition=_table_definition) + return Model._query_all('SELECT * FROM applications', Application.factory) + @staticmethod def truncate(): Model._create_table_if_not_exists(table_name=_table_name, table_definition=_table_definition, drop_existing=True)