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