repair translations
This commit is contained in:
parent
98581132dd
commit
84adc5d941
18 changed files with 304 additions and 122 deletions
|
|
@ -16,7 +16,7 @@ auth_service = AuthService()
|
|||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/login")
|
||||
|
||||
@router.post("/register", response_model=UserResponse)
|
||||
async def register(user: UserCreate, translations: Translations = Depends(get_translations())):
|
||||
async def register(user: UserCreate, translations: Translations = Depends(get_translations)):
|
||||
"""Регистрирует нового пользователя.
|
||||
|
||||
Создаёт нового пользователя на основе предоставленных данных и возвращает
|
||||
|
|
@ -44,7 +44,7 @@ async def register(user: UserCreate, translations: Translations = Depends(get_tr
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Не удалось зарегистрировать пользователя"))
|
||||
|
||||
@router.post("/login", response_model=Token)
|
||||
async def login(user: UserLogin, request: Request, translations: Translations = Depends(get_translations())):
|
||||
async def login(user: UserLogin, request: Request, translations: Translations = Depends(get_translations)):
|
||||
"""Авторизует пользователя и создаёт сессию.
|
||||
|
||||
Проверяет учетные данные пользователя и возвращает токен и session_id для
|
||||
|
|
@ -75,7 +75,7 @@ async def login(user: UserLogin, request: Request, translations: Translations =
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Не удалось авторизовать пользователя"))
|
||||
|
||||
@router.get("/me")
|
||||
async def get_current_user(request: Request, translations: Translations = Depends(get_translations())):
|
||||
async def get_current_user(request: Request, translations: Translations = Depends(get_translations)):
|
||||
"""Возвращает данные текущего пользователя и токен.
|
||||
|
||||
Проверяет активную сессию по client_id и возвращает информацию о пользователе
|
||||
|
|
@ -109,7 +109,7 @@ async def get_current_user(request: Request, translations: Translations = Depend
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Не удалось получить данные пользователя"))
|
||||
|
||||
@router.get("/logout")
|
||||
async def logout(request: Request, translations: Translations = Depends(get_translations())):
|
||||
async def logout(request: Request, translations: Translations = Depends(get_translations)):
|
||||
"""Выход из системы, удаление сессии.
|
||||
|
||||
Удаляет активную сессию пользователя по client_id.
|
||||
|
|
@ -136,7 +136,7 @@ async def logout(request: Request, translations: Translations = Depends(get_tran
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Не удалось выйти из системы"))
|
||||
|
||||
@router.get("/check_json")
|
||||
async def check_users_file(translations: Translations = Depends(get_translations())):
|
||||
async def check_users_file(translations: Translations = Depends(get_translations)):
|
||||
"""Проверяет, существует ли файл users.json и содержит ли он пользователей.
|
||||
|
||||
Возвращает информацию о состоянии файла и наличии пользователей.
|
||||
|
|
@ -180,4 +180,4 @@ async def check_users_file(translations: Translations = Depends(get_translations
|
|||
}
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при проверке файла: {type(e).__name__} - {str(e)}")
|
||||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка при проверке файла"))
|
||||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка при проверке файла"))
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ router = APIRouter()
|
|||
ip_service = IPService()
|
||||
|
||||
@router.post("/check_ip")
|
||||
async def check_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations())):
|
||||
async def check_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations)):
|
||||
"""Проверяет доступность IP-адреса перед его применением.
|
||||
|
||||
Выполняет ARP-сканирование для проверки, занят ли указанный IP-адрес,
|
||||
|
|
@ -37,7 +37,7 @@ async def check_ip_config(data: Dict[str, Any] = Body(...), translations: Transl
|
|||
)
|
||||
|
||||
@router.post("/apply_ip")
|
||||
async def apply_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations())):
|
||||
async def apply_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations)):
|
||||
"""Применяет проверенные IP-настройки к указанному сетевому профилю.
|
||||
|
||||
Обновляет настройки соединения через NetworkManager, отключает и
|
||||
|
|
@ -74,7 +74,7 @@ async def apply_ip_config(data: Dict[str, Any] = Body(...), translations: Transl
|
|||
)
|
||||
|
||||
@router.post("/save_ip")
|
||||
async def save_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations())):
|
||||
async def save_ip_config(data: Dict[str, Any] = Body(...), translations: Translations = Depends(get_translations)):
|
||||
"""Применяет проверенные IP-настройки для отката сетевого профиля.
|
||||
|
||||
Используется для сохранения и отката настроек сетевого профиля к предыдущему
|
||||
|
|
@ -108,4 +108,4 @@ async def save_ip_config(data: Dict[str, Any] = Body(...), translations: Transla
|
|||
raise HTTPException(
|
||||
status_code=500,
|
||||
detail=translations.gettext("Ошибка проверки IP конфигурации: {error}").format(error=str(e))
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from models.network import (
|
|||
NetworkInterface,
|
||||
WiFiDevice,
|
||||
)
|
||||
from utils.i18n import get_translations, _
|
||||
from utils.i18n import get_translations, _, _load_translations
|
||||
from babel.support import Translations
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
|
@ -44,7 +44,7 @@ class ContainerPositionManager:
|
|||
},
|
||||
}
|
||||
|
||||
def get_position_and_state(self, container_name: str, translations: Translations = None) -> Tuple[int, int, bool]:
|
||||
def get_position_and_state(self, container_name: str, translations: Translations) -> Tuple[int, int, bool]:
|
||||
"""Получает текущие координаты и состояние указанного контейнера.
|
||||
|
||||
Args:
|
||||
|
|
@ -57,7 +57,6 @@ class ContainerPositionManager:
|
|||
Raises:
|
||||
ValueError: Если указан неверный идентификатор контейнера.
|
||||
"""
|
||||
translations = translations or get_translations()()
|
||||
container = self.positions.get(container_name)
|
||||
if not container:
|
||||
raise ValueError(translations.gettext("Неверное имя контейнера: {container_name}").format(container_name=container_name))
|
||||
|
|
@ -80,7 +79,7 @@ class ContainerPositionManager:
|
|||
|
||||
container_manager = ContainerPositionManager()
|
||||
|
||||
async def get_network_data(translations: Translations = None) -> Dict[str, Dict]:
|
||||
async def get_network_data(translations: Translations = Depends(get_translations)) -> Dict[str, Dict]:
|
||||
"""Возвращает текущие сетевые данные в виде словаря.
|
||||
|
||||
Получает данные о сетевых интерфейсах, разделяет их на активные и неактивные,
|
||||
|
|
@ -97,15 +96,14 @@ async def get_network_data(translations: Translations = None) -> Dict[str, Dict]
|
|||
Raises:
|
||||
HTTPException: Если произошла ошибка при получении данных (status_code=500).
|
||||
"""
|
||||
translations = translations or get_translations()()
|
||||
logger.debug("Calling get_network_data()")
|
||||
try:
|
||||
network_data = await network_service.get_network_interfaces_container()
|
||||
|
||||
activation_interfaces, deactivation_interfaces = _split_interfaces(network_data.interfaces)
|
||||
|
||||
activation_x, activation_y, activation_is_open = (container_manager.get_position_and_state("activation"))
|
||||
deactivation_x, deactivation_y, deactivation_is_open = (container_manager.get_position_and_state("deactivation"))
|
||||
activation_x, activation_y, activation_is_open = container_manager.get_position_and_state("activation", translations)
|
||||
deactivation_x, deactivation_y, deactivation_is_open = container_manager.get_position_and_state("deactivation", translations)
|
||||
|
||||
activation = Activation(
|
||||
id=1,
|
||||
|
|
@ -152,7 +150,7 @@ def _split_interfaces(
|
|||
return activation_interfaces, deactivation_interfaces
|
||||
|
||||
@router.post("/update_container_position")
|
||||
async def update_container_position(data: Dict[str, Union[int, bool]] = Body(...), translations: Translations = None):
|
||||
async def update_container_position(data: Dict[str, Union[int, bool]] = Body(...), translations: Translations = Depends(get_translations)):
|
||||
"""Обновляет позицию и состояние контейнера.
|
||||
|
||||
Принимает данные о новом положении и состоянии контейнера и обновляет их
|
||||
|
|
@ -175,7 +173,6 @@ async def update_container_position(data: Dict[str, Union[int, bool]] = Body(...
|
|||
HTTPException: Если отсутствуют обязательные поля (status_code=400) или
|
||||
типы данных неверны.
|
||||
"""
|
||||
translations = translations or get_translations()()
|
||||
try:
|
||||
required_keys = [
|
||||
"container_id", "container_x", "container_y", "isOpen"
|
||||
|
|
@ -206,7 +203,7 @@ async def update_container_position(data: Dict[str, Union[int, bool]] = Body(...
|
|||
raise HTTPException(status_code=400, detail=translations.gettext("Не удалось обновить положение контейнера: {error}").format(error=str(e)))
|
||||
|
||||
@router.get("/get_hostname")
|
||||
async def get_hostname(translations: Translations = Depends(get_translations())):
|
||||
async def get_hostname(translations: Translations = Depends(get_translations)):
|
||||
"""Возвращает имя хоста системы.
|
||||
|
||||
Выполняет запрос к сервису для получения имени хоста.
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ router = APIRouter()
|
|||
settings_service = SettingsService()
|
||||
|
||||
@router.post("/clear_subnet")
|
||||
def clear_subnet(subnet: Optional[str] = None, translations: Translations = Depends(get_translations())):
|
||||
def clear_subnet(subnet: Optional[str] = None, translations: Translations = Depends(get_translations)):
|
||||
"""Очищает данные узлов подсети, сохранённые в devices.json.
|
||||
|
||||
Удаляет все записи об узлах подсети, оставляя файл пустым.
|
||||
|
|
@ -46,7 +46,7 @@ def clear_subnet(subnet: Optional[str] = None, translations: Translations = Depe
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка очистки: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/clear_wifi")
|
||||
def clear_wifi(translations: Translations = Depends(get_translations())):
|
||||
def clear_wifi(translations: Translations = Depends(get_translations)):
|
||||
"""Очищает данные точек доступа Wi-Fi, сохранённые в wifi.json.
|
||||
|
||||
Удаляет все записи о точках доступа, оставляя файл пустым.
|
||||
|
|
@ -71,7 +71,7 @@ def clear_wifi(translations: Translations = Depends(get_translations())):
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка очистки: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/clear_all_data")
|
||||
def clear_all_data(translations: Translations = Depends(get_translations())):
|
||||
def clear_all_data(translations: Translations = Depends(get_translations)):
|
||||
"""Очищает данные узлов подсети и точек доступа Wi-Fi в обоих файлах.
|
||||
|
||||
Удаляет все записи из devices.json и wifi.json.
|
||||
|
|
@ -98,7 +98,7 @@ def clear_all_data(translations: Translations = Depends(get_translations())):
|
|||
WIFI_PATH = "storage/wifi/wifi.json"
|
||||
|
||||
@router.post("/export_devices", response_class=FileResponse)
|
||||
async def export_devices(request: SubnetScanRequest = Body(...), translations: Translations = Depends(get_translations())):
|
||||
async def export_devices(request: SubnetScanRequest = Body(...), translations: Translations = Depends(get_translations)):
|
||||
"""
|
||||
Экспортирует файл с данными устройств в формате JSON для указанной подсети.
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ async def export_devices(request: SubnetScanRequest = Body(...), translations: T
|
|||
)
|
||||
|
||||
@router.get("/export_wifi", response_class=FileResponse)
|
||||
async def export_wifi(translations: Translations = Depends(get_translations())):
|
||||
async def export_wifi(translations: Translations = Depends(get_translations)):
|
||||
"""
|
||||
Экспортирует файл с данными устройств в формате JSON.
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ async def export_wifi(translations: Translations = Depends(get_translations())):
|
|||
)
|
||||
|
||||
@router.post("/set_language")
|
||||
def set_language(locale: str, response: Response, translations: Translations = Depends(get_translations())):
|
||||
def set_language(locale: str, response: Response, translations: Translations = Depends(get_translations)):
|
||||
"""
|
||||
Устанавливает куку locale для смены языка пользователя.
|
||||
|
||||
|
|
@ -177,7 +177,7 @@ def set_language(locale: str, response: Response, translations: Translations = D
|
|||
return {"message": translations.gettext("Язык успешно установлен: {locale}").format(locale=locale)}
|
||||
|
||||
@router.get("/get_system_language")
|
||||
async def get_system_language(request: Request, translations: Translations = Depends(get_translations())):
|
||||
async def get_system_language(request: Request, translations: Translations = Depends(get_translations)):
|
||||
"""Выводит текущий язык, установленный в системе на основе locale.
|
||||
|
||||
Выполняет команду 'locale' в системе и извлекает параметры LANG
|
||||
|
|
@ -206,4 +206,4 @@ async def get_system_language(request: Request, translations: Translations = Dep
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Не удалось определить язык в системе"))
|
||||
except Exception as e:
|
||||
logger.error(f"Unexpected error getting system language: {str(e)}")
|
||||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка при определении языка в системе {error}").format(error=str(e)))
|
||||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка при определении языка в системе {error}").format(error=str(e)))
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ logging.basicConfig(level=logging.INFO)
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
@router.post("/devices", response_model=SubnetScanResult)
|
||||
def scan_subnet(request: SubnetScanRequest = Body(...), subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations())):
|
||||
def scan_subnet(request: SubnetScanRequest = Body(...), subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations)):
|
||||
"""Сканирует локальную подсеть и возвращает данные об устройствах.
|
||||
|
||||
Выполняет сканирование указанной подсети для обнаружения активных устройств.
|
||||
|
|
@ -44,7 +44,7 @@ def scan_subnet(request: SubnetScanRequest = Body(...), subnet_service: SubnetSe
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка сканирования подсети: {error}").format(error=str(e)))
|
||||
|
||||
@router.get("/wifi", response_model=WifiScanResult)
|
||||
def scan_wifi(timeout: int = 30, translations: Translations = Depends(get_translations())):
|
||||
def scan_wifi(timeout: int = 30, translations: Translations = Depends(get_translations)):
|
||||
"""Сканирует Wi-Fi точки доступа и возвращает данные о них.
|
||||
|
||||
Выполняет сканирование доступных Wi-Fi сетей с указанным таймаутом.
|
||||
|
|
@ -67,7 +67,7 @@ def scan_wifi(timeout: int = 30, translations: Translations = Depends(get_transl
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка сканирования Wi-Fi: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/devices/{mac}/note")
|
||||
def add_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations())):
|
||||
def add_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations)):
|
||||
"""Добавляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Привязывает заметку к устройству, идентифицируемому по MAC-адресу.
|
||||
|
|
@ -101,7 +101,7 @@ def add_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Dep
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка добавления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.put("/devices/{mac}/note")
|
||||
def update_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations())):
|
||||
def update_note(mac: str, request: NoteRequest, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations)):
|
||||
"""Обновляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Изменяет существующую заметку, привязанную к устройству.
|
||||
|
|
@ -135,7 +135,7 @@ def update_note(mac: str, request: NoteRequest, subnet_service: SubnetService =
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка обновления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.delete("/devices/{mac}/note")
|
||||
def delete_note(mac: str, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations())):
|
||||
def delete_note(mac: str, subnet_service: SubnetService = Depends(get_subnet_service), translations: Translations = Depends(get_translations)):
|
||||
"""Удаляет заметку для устройства по MAC-адресу.
|
||||
|
||||
Удаляет привязанную заметку для указанного устройства.
|
||||
|
|
@ -168,7 +168,7 @@ def delete_note(mac: str, subnet_service: SubnetService = Depends(get_subnet_ser
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка удаления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/wifi/{ssid}/note")
|
||||
def add_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(get_translations())):
|
||||
def add_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(get_translations)):
|
||||
"""Добавляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Привязывает заметку к Wi-Fi сети, идентифицируемой по SSID.
|
||||
|
|
@ -202,7 +202,7 @@ def add_wifi_note(ssid: str, request: NoteRequest, translations: Translations =
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка добавления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.put("/wifi/{ssid}/note")
|
||||
def update_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(get_translations())):
|
||||
def update_wifi_note(ssid: str, request: NoteRequest, translations: Translations = Depends(get_translations)):
|
||||
"""Обновляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Изменяет существующую заметку, привязанную к Wi-Fi сети.
|
||||
|
|
@ -236,7 +236,7 @@ def update_wifi_note(ssid: str, request: NoteRequest, translations: Translations
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка обновления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.delete("/wifi/{ssid}/note")
|
||||
def delete_wifi_note(ssid: str, translations: Translations = Depends(get_translations())):
|
||||
def delete_wifi_note(ssid: str, translations: Translations = Depends(get_translations)):
|
||||
"""Удаляет заметку для сети Wi-Fi по SSID.
|
||||
|
||||
Удаляет привязанную заметку для указанной Wi-Fi сети.
|
||||
|
|
@ -269,7 +269,7 @@ def delete_wifi_note(ssid: str, translations: Translations = Depends(get_transla
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка удаления заметки: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/wifi/connect")
|
||||
def connect_to_wifi(request: WifiConnectRequest, translations: Translations = Depends(get_translations())):
|
||||
def connect_to_wifi(request: WifiConnectRequest, translations: Translations = Depends(get_translations)):
|
||||
"""Подключается к Wi-Fi сети по SSID и паролю.
|
||||
|
||||
Выполняет подключение к указанной Wi-Fi сети с использованием предоставленных
|
||||
|
|
@ -297,7 +297,7 @@ def connect_to_wifi(request: WifiConnectRequest, translations: Translations = De
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка подключения к Wi-Fi: {error}").format(error=str(e)))
|
||||
|
||||
@router.post("/wifi/disconnect")
|
||||
def disconnect_from_wifi(request: WifiDisconnectRequest, translations: Translations = Depends(get_translations())):
|
||||
def disconnect_from_wifi(request: WifiDisconnectRequest, translations: Translations = Depends(get_translations)):
|
||||
"""Отключается от Wi-Fi сети по указанному SSID.
|
||||
|
||||
Выполняет отключение от указанной Wi-Fi сети.
|
||||
|
|
@ -324,7 +324,7 @@ def disconnect_from_wifi(request: WifiDisconnectRequest, translations: Translati
|
|||
raise HTTPException(status_code=500, detail=translations.gettext("Ошибка отключения от Wi-Fi: {error}").format(error=str(e)))
|
||||
|
||||
@router.get("/wifi/status")
|
||||
def get_wifi_status(translations: Translations = Depends(get_translations())):
|
||||
def get_wifi_status(translations: Translations = Depends(get_translations)):
|
||||
"""Проверяет статус текущего подключения к Wi-Fi.
|
||||
|
||||
Возвращает информацию о текущем состоянии подключения и SSID, если подключение активно.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from typing import Set
|
|||
|
||||
from fastapi import APIRouter, WebSocket, WebSocketDisconnect, Depends
|
||||
from starlette.websockets import WebSocketState
|
||||
from utils.i18n import get_translations, _
|
||||
from utils.i18n import get_translations_ws, _, _load_translations
|
||||
from babel.support import Translations
|
||||
|
||||
from .network import update_container_position, get_network_data
|
||||
|
|
@ -78,7 +78,7 @@ class WebSocketManager:
|
|||
manager = WebSocketManager()
|
||||
|
||||
@router.websocket("/api/v1")
|
||||
async def websocket_endpoint(websocket: WebSocket, translations: Translations = Depends(get_translations())):
|
||||
async def websocket_endpoint(websocket: WebSocket, translations: Translations = Depends(get_translations_ws)):
|
||||
"""Обработчик WebSocket-соединения.
|
||||
|
||||
Управляет соединением клиента, принимает данные для обновления позиций
|
||||
|
|
@ -99,10 +99,10 @@ async def websocket_endpoint(websocket: WebSocket, translations: Translations =
|
|||
logger.info(f"Received data: {data}")
|
||||
|
||||
if all(key in data for key in ["container_id", "container_x", "container_y"]):
|
||||
await update_container_position(data)
|
||||
await update_container_position(data, translations=translations)
|
||||
|
||||
# Внутренний вызов без DI, поэтому используем fallback-переводы
|
||||
network_data = await get_network_data(translations=get_translations()(websocket))
|
||||
# Для внутреннего вызова используем переводы из WebSocket зависимостии
|
||||
network_data = await get_network_data(translations=translations)
|
||||
logger.info(f"Current network data: {network_data}")
|
||||
|
||||
await manager.broadcast(network_data)
|
||||
|
|
@ -139,7 +139,7 @@ async def broadcast_data(translations: Translations = None):
|
|||
Raises:
|
||||
Exception: Если произошла ошибка при получении данных или трансляции.
|
||||
"""
|
||||
translations = translations or get_translations()()
|
||||
translations = translations or _load_translations("ru")
|
||||
while True:
|
||||
try:
|
||||
network_data = await get_network_data(translations=translations)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue