Wifi Service¶
- class services.wifi_service.WifiService(translations: Translations = Depends(translations_dependency))[source]
Bases:
objectСервис для сканирования текущих Wi-Fi точек доступа и заметок.
- Источники данных:
pywifi для базового сканирования и получения списка AP.
iw dev <iface> scan для уточнения частоты, сигнала и безопасности.
MacLookup для определения вендора по BSSID.
- Политики:
Выбор лучшего AP по SSID по уровню сигнала.
Кэширование определения вендора.
Сохранение SSID даже без заметок для будущих операций.
- add_note(ssid: str, note: str) Tuple[bool, str | None][source]
Добавляет заметку к сети Wi-Fi по SSID.
- delete_note(ssid: str) Tuple[bool, str | None][source]
Удаляет заметку сети Wi-Fi по SSID.
- get_vendor(mac: str) str[source]
Определяет вендора по MAC-адресу с использованием кэширования.
- scan_wifi(timeout: int = 30) WifiScanResult[source]
Сканирует текущие Wi-Fi точки доступа.
- update_note(ssid: str, note: str) Tuple[bool, str | None][source]
Обновляет заметку сети Wi-Fi по SSID.
- class services.wifi_service.WifiStorage(storage_path: str = 'storage/wifi/wifi.json', translations: Translations = Depends(translations_dependency))[source]
Bases:
objectКласс для хранения данных о Wi-Fi сетях и их заметках по SSID.
Формат:
{ "networks": [{"ssid": str, "note": Optional[str]}] }
Поведение:
Создаёт директорию хранения при инициализации, ведёт логирование путей.
Валидирует структуру при чтении и безопасно записывает JSON с Unicode и отступами.
- load_notes() Dict[str, str | None][source]
Загружает заметки по SSID из файла хранения.
- save_notes(notes: Dict[str, str | None]) None[source]
Сохраняет заметки по SSID в файл.