From 2f027256bb21956b02c93268486f35eb4b89431f Mon Sep 17 00:00:00 2001 From: Willian Galvani Date: Mon, 3 Jul 2023 11:05:20 -0300 Subject: [PATCH] core: helper: add sanitized_name to services metadata --- core/services/helper/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/services/helper/main.py b/core/services/helper/main.py index 42ecef5389..11c76ed321 100755 --- a/core/services/helper/main.py +++ b/core/services/helper/main.py @@ -4,6 +4,7 @@ import http import logging import os +import re from enum import Enum from pathlib import Path from typing import Any, Dict, List, Optional @@ -58,6 +59,7 @@ class ServiceMetadata(BaseModel): route: Optional[str] new_page: Optional[bool] api: str + sanitized_name: Optional[str] class ServiceInfo(BaseModel): @@ -97,6 +99,7 @@ def detect_service(port: int) -> ServiceInfo: with requests.get(f"http://127.0.0.1:{port}/register_service", timeout=0.2) as response: if response.status_code == http.HTTPStatus.OK: info.metadata = ServiceMetadata.parse_obj(response.json()) + info.metadata.sanitized_name = re.sub(r"[^a-z0-9]", "", info.metadata.name.lower()) except Exception: # This should be avoided by the first try block, but better safe than sorry pass @@ -140,7 +143,7 @@ def scan_ports() -> List[ServiceInfo]: # And check if there is a webpage available that is not us # Use it as a set to remove duplicated ports ports = set(connection.laddr.port for connection in connections) - services = (Helper.detect_service(port) for port in ports if port != PORT) + services = [Helper.detect_service(port) for port in ports if port != PORT] return [service for service in services if service.valid] @staticmethod