gonets/SRV/docs/_build/markdown/api/services/wifi_service.md

2.3 KiB
Raw Permalink Blame History

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 в файл.