Unicode repair

This commit is contained in:
parent 2b8eff58ac
commit e264750187
49 changed files with 107 additions and 107 deletions

View file

@ -280,7 +280,7 @@
<span class="sd">Модуль инкапсулирует добавление middleware `CORSMiddleware` со списком</span>
<span class="sd">разрешённых источников (origins), характерных для локальной разработки и</span>
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).</span>
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).</span>
<span class="sd">Использование:</span>
<span class="sd"> cors_config = CORSMiddlewareConfig(app)</span>

View file

@ -282,7 +282,7 @@
<div class="viewcode-block" id="CLIExecutor">
<a class="viewcode-back" href="../../api/core/cli_executor.html#core.cli_executor.CLIExecutor">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">CLIExecutor</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Утилита для безопасного выполнения CLI‑команд.</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Утилита для безопасного выполнения CLI-команд.</span>
<span class="sd"> Назначение:</span>
<span class="sd"> Инкапсулирует вызов `subprocess.run` и приводит результат к удобному</span>

View file

@ -280,18 +280,18 @@
<span class="sd">Назначение:</span>
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.</span>
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.</span>
<span class="sd">- Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.</span>
<span class="sd">Особенности реализации:</span>
<span class="sd">- Определяет подключённые сети интерфейса через `netifaces` и строит CIDR для сканирования.</span>
<span class="sd">- Формирует ARP‑пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
<span class="sd">- Формирует ARP-пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
<span class="sd">- Добавляет локальный адрес интерфейса в результирующий список клиентов.</span>
<span class="sd">Требования/ограничения:</span>
<span class="sd">- Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
<span class="sd">- Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">Depends</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">scapy.layers.l2</span><span class="w"> </span><span class="kn">import</span> <span class="n">ARP</span><span class="p">,</span> <span class="n">Ether</span>

View file

@ -276,7 +276,7 @@
<article role="main" id="furo-main-content">
<h1>Source code for services.connect_service</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Сервис управления подключениями Wi‑Fi через `nmcli`.</span>
<span class="sd">Сервис управления подключениями Wi-Fi через `nmcli`.</span>
<span class="sd">Назначение:</span>
@ -284,7 +284,7 @@
<span class="sd">Поведение:</span>
<span class="sd">- Автоматически определяет активный Wi‑Fi‑интерфейс.</span>
<span class="sd">- Автоматически определяет активный Wi-Fi-интерфейс.</span>
<span class="sd">- Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки `nmcli` (неверный пароль, отсутствующая сеть и т.п.).</span>
<span class="sd">Ограничения:</span>

View file

@ -276,7 +276,7 @@
<article role="main" id="furo-main-content">
<h1>Source code for services.firewalld_service</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Сервис для управления firewalld через D‑Bus.</span>
<span class="sd">Сервис для управления firewalld через D-Bus.</span>
<span class="sd">Назначение:</span>
<span class="sd">- Обёртка над интерфейсами `org.fedoraproject.FirewallD1` для выполнения</span>

View file

@ -276,7 +276,7 @@
<article role="main" id="furo-main-content">
<h1>Source code for services.ip_service</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).</span>
<span class="sd">Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).</span>
<span class="sd">Назначение:</span>
<span class="sd">- Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент</span>
@ -285,7 +285,7 @@
<span class="sd"> выполняет переподключение интерфейса.</span>
<span class="sd">Требования/ограничения:</span>
<span class="sd">- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.</span>
<span class="sd">- Доступ к системной шине D-Bus и права на изменения сетевых профилей.</span>
<span class="sd">- Структура входных данных должна соответствовать схеме `ipv4_updates` для</span>
<span class="sd"> корректного обновления вложенных полей у профиля.</span>
<span class="sd">&quot;&quot;&quot;</span>

View file

@ -276,16 +276,16 @@
<article role="main" id="furo-main-content">
<h1>Source code for services.network_service</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D‑Bus).</span>
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D-Bus).</span>
<span class="sd">Назначение:</span>
<span class="sd">- Предоставляет асинхронные методы для сборки унифицированных моделей</span>
<span class="sd"> сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения</span>
<span class="sd"> имени хоста. Используется API‑слоем для визуализации и управления.</span>
<span class="sd"> сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения</span>
<span class="sd"> имени хоста. Используется API-слоем для визуализации и управления.</span>
<span class="sd">Особенности:</span>
<span class="sd">- Фильтрация loopback и явно неактивных интерфейсов.</span>
<span class="sd">- Адаптация данных D‑Bus в pydantic‑модели (`NetworkInterface`, `WiFiDevice`,</span>
<span class="sd">- Адаптация данных D-Bus в pydantic-модели (`NetworkInterface`, `WiFiDevice`,</span>
<span class="sd"> `NetworkInterfacesContainer`).</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Optional</span>

View file

@ -328,7 +328,7 @@
<span class="sd"> Назначение:</span>
<span class="sd"> Обнаруживает активные устройства в локальной сети, отправляя широковещательные</span>
<span class="sd"> ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).</span>
<span class="sd"> ARP-запросы по указанной подсети и собирая ответы (IP, MAC).</span>
<span class="sd"> Детали реализации:</span>
<span class="sd"> - Использует `scapy` (`Ether` + `ARP`) для генерации пакетов и `srp` для</span>
@ -393,7 +393,7 @@
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для сканирования открытых портов на устройствах.</span>
<span class="sd"> Назначение:</span>
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов</span>
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов</span>
<span class="sd"> у обнаруженных узлов. В текущей версии возвращает пустой список.</span>
<span class="sd"> План развития:</span>
@ -438,7 +438,7 @@
<span class="sd"> Источники данных:</span>
<span class="sd"> - MacLookup: сопоставление префикса MAC (OUI) с названием производителя.</span>
<span class="sd"> - DNS: `gethostbyaddr` с малым таймаутом для обратного разрешения имени.</span>
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.</span>
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.</span>
<span class="sd"> Политика кэширования:</span>
<span class="sd"> - Результаты `get_vendor` кэшируются с помощью `functools.lru_cache`.</span>
@ -552,13 +552,13 @@
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для хранения и управления данными об устройствах.</span>
<span class="sd"> Формат файла подсети:</span>
<span class="sd"> JSON‑структура вида</span>
<span class="sd"> JSON-структура вида</span>
<span class="sd"> {</span>
<span class="sd"> &quot;devices&quot;: [Device, ...]</span>
<span class="sd"> }</span>
<span class="sd"> Политика очистки:</span>
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн‑устройства, не наблюдавшиеся</span>
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн-устройства, не наблюдавшиеся</span>
<span class="sd"> более 7 дней, чтобы поддерживать актуальность списка.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">base_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;storage/subnets&quot;</span><span class="p">,</span> <span class="n">translations</span><span class="p">:</span> <span class="n">Translations</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
@ -699,8 +699,8 @@
<span class="sd"> 1) Определение подсети (вручную или авто по интерфейсу).</span>
<span class="sd"> 2) Загрузка ранее сохранённых устройств подсети.</span>
<span class="sd"> 3) Добавление локального устройства (если принадлежит подсети).</span>
<span class="sd"> 4) ARP‑сканирование и параллельная обработка узлов (обогащение данных).</span>
<span class="sd"> 5) Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.</span>
<span class="sd"> 4) ARP-сканирование и параллельная обработка узлов (обогащение данных).</span>
<span class="sd"> 5) Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</span>
<span class="sd"> 6) Сортировка по IP и сохранение объединённого списка в JSON.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">translations</span><span class="p">:</span> <span class="n">Translations</span><span class="p">):</span>

View file

@ -300,7 +300,7 @@
<div class="viewcode-block" id="WifiStorage">
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiStorage">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">WifiStorage</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.</span>
<span class="sd"> Формат:</span>
<span class="sd"> {</span>
@ -359,7 +359,7 @@
<div class="viewcode-block" id="WifiService">
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiService">[docs]</a>
<span class="k">class</span><span class="w"> </span><span class="nc">WifiService</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сервис для сканирования текущих Wi-Fi точек доступа и заметок.</span>
<span class="sd"> Источники данных:</span>
<span class="sd"> - `pywifi` для базового сканирования и получения списка AP.</span>

View file

@ -296,7 +296,7 @@
<span class="sd"> где важна минимальная зависимость от внешних сервисов.</span>
<span class="sd"> Формат данных:</span>
<span class="sd"> JSON‑структура вида:</span>
<span class="sd"> JSON-структура вида:</span>
<span class="sd"> {</span>
<span class="sd"> &quot;users&quot;: [</span>
<span class="sd"> {&quot;id&quot;: int, &quot;username&quot;: str, &quot;password_hash&quot;: str, &quot;is_admin&quot;: bool},</span>

View file

@ -293,7 +293,7 @@
<span class="sd"> Назначение:</span>
<span class="sd"> Лёгкое файловое хранилище для сессионных токенов, сопоставленных с</span>
<span class="sd"> `client_id` (например, IP клиента). Предназначено для сред без БД и</span>
<span class="sd"> persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших</span>
<span class="sd"> persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших</span>
<span class="sd"> сессий.</span>
<span class="sd"> Формат данных:</span>

View file

@ -280,8 +280,8 @@
<span class="sd">Содержимое модуля:</span>
<span class="sd"> - `get_translations()`: фабрика зависимости FastAPI, считывающая локаль из</span>
<span class="sd"> query‑параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию‑зависимость, которая</span>
<span class="sd"> query-параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию-зависимость, которая</span>
<span class="sd"> подгружает `babel.support.Translations` из каталога `SRV/locales`.</span>
<span class="sd"> - `_()`: удобная обёртка для получения перевода строки с использованием</span>
<span class="sd"> текущей локали (или дефолтного `ru`, если контекст запроса не передан).</span>

View file

@ -286,7 +286,7 @@
<p>Конфигурация CORS для FastAPI-приложения GONETS.</p>
<p>Модуль инкапсулирует добавление middleware <cite>CORSMiddleware</cite> со списком
разрешённых источников (origins), характерных для локальной разработки и
типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).</p>
типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).</p>
<dl class="simple">
<dt>Использование:</dt><dd><p>cors_config = CORSMiddlewareConfig(app)
cors_config.add_cors_middleware()</p>

View file

@ -287,7 +287,7 @@
<dt class="sig sig-object py" id="core.cli_executor.CLIExecutor">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">core.cli_executor.</span></span><span class="sig-name descname"><span class="pre">CLIExecutor</span></span><a class="reference internal" href="../../_modules/core/cli_executor.html#CLIExecutor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#core.cli_executor.CLIExecutor" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Утилита для безопасного выполнения CLI‑команд.</p>
<p>Утилита для безопасного выполнения CLI-команд.</p>
<dl class="simple">
<dt>Назначение:</dt><dd><p>Инкапсулирует вызов <cite>subprocess.run</cite> и приводит результат к удобному
кортежу (код возврата, stdout) без генерации исключений при ошибках.</p>

View file

@ -286,18 +286,18 @@
<p>Сервис низкоуровневого ARP-сканирования локальной сети.</p>
<p>Назначение:</p>
<ul class="simple">
<li><p>Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.</p></li>
<li><p>Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.</p></li>
<li><p>Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.</p></li>
</ul>
<p>Особенности реализации:</p>
<ul class="simple">
<li><p>Определяет подключённые сети интерфейса через <cite>netifaces</cite> и строит CIDR для сканирования.</p></li>
<li><p>Формирует ARP‑пакеты с помощью <cite>scapy</cite> (Ether/ARP) и отправляет их с таймаутом.</p></li>
<li><p>Формирует ARP-пакеты с помощью <cite>scapy</cite> (Ether/ARP) и отправляет их с таймаутом.</p></li>
<li><p>Добавляет локальный адрес интерфейса в результирующий список клиентов.</p></li>
</ul>
<p>Требования/ограничения:</p>
<ul class="simple">
<li><p>Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</p></li>
<li><p>Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</p></li>
</ul>
<dl class="py class">
<dt class="sig sig-object py" id="services.arp_service.NetworkScanner">

View file

@ -283,14 +283,14 @@
<article role="main" id="furo-main-content">
<section id="module-services.connect_service">
<span id="connect-service"></span><h1>Connect Service<a class="headerlink" href="#module-services.connect_service" title="Link to this heading"></a></h1>
<p>Сервис управления подключениями Wi‑Fi через <cite>nmcli</cite>.</p>
<p>Сервис управления подключениями Wi-Fi через <cite>nmcli</cite>.</p>
<p>Назначение:</p>
<ul class="simple">
<li><p>Предоставляет операции подключения/отключения к точкам доступа и проверки текущего статуса, ориентируясь на системный NetworkManager.</p></li>
</ul>
<p>Поведение:</p>
<ul class="simple">
<li><p>Автоматически определяет активный Wi‑Fi‑интерфейс.</p></li>
<li><p>Автоматически определяет активный Wi-Fi-интерфейс.</p></li>
<li><p>Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки <cite>nmcli</cite> (неверный пароль, отсутствующая сеть и т.п.).</p></li>
</ul>
<p>Ограничения:</p>

View file

@ -283,7 +283,7 @@
<article role="main" id="furo-main-content">
<section id="module-services.firewalld_service">
<span id="firewalld-service"></span><h1>Firewalld Service<a class="headerlink" href="#module-services.firewalld_service" title="Link to this heading"></a></h1>
<p>Сервис для управления firewalld через D‑Bus.</p>
<p>Сервис для управления firewalld через D-Bus.</p>
<p>Назначение:
- Обёртка над интерфейсами <cite>org.fedoraproject.FirewallD1</cite> для выполнения</p>
<blockquote>

View file

@ -283,7 +283,7 @@
<article role="main" id="furo-main-content">
<section id="module-services.ip_service">
<span id="ip-service"></span><h1>IP Service<a class="headerlink" href="#module-services.ip_service" title="Link to this heading"></a></h1>
<p>Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).</p>
<p>Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).</p>
<p>Назначение:
- Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент</p>
<blockquote>
@ -294,7 +294,7 @@
выполняет переподключение интерфейса.</p></li>
</ul>
<p>Требования/ограничения:
- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.
- Доступ к системной шине D-Bus и права на изменения сетевых профилей.
- Структура входных данных должна соответствовать схеме <cite>ipv4_updates</cite> для</p>
<blockquote>
<div><p>корректного обновления вложенных полей у профиля.</p>

View file

@ -283,16 +283,16 @@
<article role="main" id="furo-main-content">
<section id="module-services.network_service">
<span id="network-service"></span><h1>Network Service<a class="headerlink" href="#module-services.network_service" title="Link to this heading"></a></h1>
<p>Сервис чтения сетевого состояния через NetworkManager (D‑Bus).</p>
<p>Сервис чтения сетевого состояния через NetworkManager (D-Bus).</p>
<p>Назначение:
- Предоставляет асинхронные методы для сборки унифицированных моделей</p>
<blockquote>
<div><p>сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения
имени хоста. Используется API‑слоем для визуализации и управления.</p>
<div><p>сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения
имени хоста. Используется API-слоем для визуализации и управления.</p>
</div></blockquote>
<p>Особенности:
- Фильтрация loopback и явно неактивных интерфейсов.
- Адаптация данных D‑Bus в pydantic‑модели (<cite>NetworkInterface</cite>, <cite>WiFiDevice</cite>,</p>
- Адаптация данных D-Bus в pydantic-модели (<cite>NetworkInterface</cite>, <cite>WiFiDevice</cite>,</p>
<blockquote>
<div><p><cite>NetworkInterfacesContainer</cite>).</p>
</div></blockquote>

View file

@ -292,7 +292,7 @@
<dt>Источники данных:</dt><dd><ul class="simple">
<li><p>MacLookup: сопоставление префикса MAC (OUI) с названием производителя.</p></li>
<li><p>DNS: <cite>gethostbyaddr</cite> с малым таймаутом для обратного разрешения имени.</p></li>
<li><p>NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.</p></li>
<li><p>NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.</p></li>
</ul>
</dd>
<dt>Политика кэширования:</dt><dd><ul class="simple">
@ -347,7 +347,7 @@
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Класс для хранения и управления данными об устройствах.</p>
<dl>
<dt>Формат файла подсети:</dt><dd><p>JSON‑структура вида
<dt>Формат файла подсети:</dt><dd><p>JSON-структура вида
{</p>
<blockquote>
<div><p>“devices”: [Device, …]</p>
@ -355,7 +355,7 @@
<p>}</p>
</dd>
<dt>Политика очистки:</dt><dd><ul class="simple">
<li><p>Метод <cite>_clean_old_devices</cite> удаляет оффлайн‑устройства, не наблюдавшиеся
<li><p>Метод <cite>_clean_old_devices</cite> удаляет оффлайн-устройства, не наблюдавшиеся
более 7 дней, чтобы поддерживать актуальность списка.</p></li>
</ul>
</dd>
@ -409,7 +409,7 @@ devices (List[Device]): Список устройств для сохранен
<p>Класс для сканирования подсети с использованием ARP-запросов.</p>
<dl class="simple">
<dt>Назначение:</dt><dd><p>Обнаруживает активные устройства в локальной сети, отправляя широковещательные
ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).</p>
ARP-запросы по указанной подсети и собирая ответы (IP, MAC).</p>
</dd>
<dt>Детали реализации:</dt><dd><ul class="simple">
<li><p>Использует <cite>scapy</cite> (<cite>Ether</cite> + <cite>ARP</cite>) для генерации пакетов и <cite>srp</cite> для
@ -449,7 +449,7 @@ ARP‑запросы по указанной подсети и собирая о
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Класс для сканирования открытых портов на устройствах.</p>
<dl class="simple">
<dt>Назначение:</dt><dd><p>Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов
<dt>Назначение:</dt><dd><p>Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов
у обнаруженных узлов. В текущей версии возвращает пустой список.</p>
</dd>
<dt>План развития:</dt><dd><ul class="simple">
@ -489,8 +489,8 @@ ARP‑запросы по указанной подсети и собирая о
<li><p>Определение подсети (вручную или авто по интерфейсу).</p></li>
<li><p>Загрузка ранее сохранённых устройств подсети.</p></li>
<li><p>Добавление локального устройства (если принадлежит подсети).</p></li>
<li><p>ARP‑сканирование и параллельная обработка узлов (обогащение данных).</p></li>
<li><p>Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.</p></li>
<li><p>ARP-сканирование и параллельная обработка узлов (обогащение данных).</p></li>
<li><p>Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</p></li>
<li><p>Сортировка по IP и сохранение объединённого списка в JSON.</p></li>
</ol>
</dd>

View file

@ -287,7 +287,7 @@
<dt class="sig sig-object py" id="services.wifi_service.WifiService">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">services.wifi_service.</span></span><span class="sig-name descname"><span class="pre">WifiService</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/wifi_service.html#WifiService"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#services.wifi_service.WifiService" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.</p>
<p>Сервис для сканирования текущих Wi-Fi точек доступа и заметок.</p>
<dl class="simple">
<dt>Источники данных:</dt><dd><ul class="simple">
<li><p><cite>pywifi</cite> для базового сканирования и получения списка AP.</p></li>
@ -338,7 +338,7 @@
<dt class="sig sig-object py" id="services.wifi_service.WifiStorage">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">services.wifi_service.</span></span><span class="sig-name descname"><span class="pre">WifiStorage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">storage_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'storage/wifi/wifi.json'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/wifi_service.html#WifiStorage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#services.wifi_service.WifiStorage" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.</p>
<p>Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.</p>
<dl>
<dt>Формат:</dt><dd><dl class="simple">
<dt>{</dt><dd><p>“networks”: [{“ssid”: str, “note”: Optional[str]}]</p>

View file

@ -293,7 +293,7 @@
без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,
где важна минимальная зависимость от внешних сервисов.</p>
</dd>
<dt>Формат данных:</dt><dd><p>JSON‑структура вида:
<dt>Формат данных:</dt><dd><p>JSON-структура вида:
{</p>
<blockquote>
<div><dl class="simple">

View file

@ -291,7 +291,7 @@
<dl>
<dt>Назначение:</dt><dd><p>Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
<cite>client_id</cite> (например, IP клиента). Предназначено для сред без БД и
persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших
persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших
сессий.</p>
</dd>
<dt>Формат данных:</dt><dd><dl>

View file

@ -287,8 +287,8 @@
<dl class="simple">
<dt>Содержимое модуля:</dt><dd><ul class="simple">
<li><p><cite>get_translations()</cite>: фабрика зависимости FastAPI, считывающая локаль из
query‑параметра <cite>locale</cite>, cookie <cite>locale</cite> или заголовка <cite>Accept-Language</cite>
(по приоритету), с дефолтом <cite>ru</cite>. Возвращает функцию‑зависимость, которая
query-параметра <cite>locale</cite>, cookie <cite>locale</cite> или заголовка <cite>Accept-Language</cite>
(по приоритету), с дефолтом <cite>ru</cite>. Возвращает функцию-зависимость, которая
подгружает <cite>babel.support.Translations</cite> из каталога <cite>SRV/locales</cite>.</p></li>
<li><p><cite>_()</cite>: удобная обёртка для получения перевода строки с использованием
текущей локали (или дефолтного <cite>ru</cite>, если контекст запроса не передан).</p></li>

View file

@ -4,7 +4,7 @@
Модуль инкапсулирует добавление middleware CORSMiddleware со списком
разрешённых источников (origins), характерных для локальной разработки и
типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).
типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).
Использование:
: cors_config = CORSMiddlewareConfig(app)

View file

@ -4,7 +4,7 @@
Bases: `object`
Утилита для безопасного выполнения CLI‑команд.
Утилита для безопасного выполнения CLI-команд.
Назначение:
: Инкапсулирует вызов subprocess.run и приводит результат к удобному

View file

@ -4,18 +4,18 @@
Назначение:
- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.
- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.
- Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.
Особенности реализации:
- Определяет подключённые сети интерфейса через netifaces и строит CIDR для сканирования.
- Формирует ARP‑пакеты с помощью scapy (Ether/ARP) и отправляет их с таймаутом.
- Формирует ARP-пакеты с помощью scapy (Ether/ARP) и отправляет их с таймаутом.
- Добавляет локальный адрес интерфейса в результирующий список клиентов.
Требования/ограничения:
- Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.
- Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.
### *class* services.arp_service.NetworkScanner(interface=None, translations: Translations = Depends(translations_dependency))

View file

@ -1,6 +1,6 @@
# Connect Service
Сервис управления подключениями Wi‑Fi через nmcli.
Сервис управления подключениями Wi-Fi через nmcli.
Назначение:
@ -8,7 +8,7 @@
Поведение:
- Автоматически определяет активный Wi‑Fi‑интерфейс.
- Автоматически определяет активный Wi-Fi-интерфейс.
- Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки nmcli (неверный пароль, отсутствующая сеть и т.п.).
Ограничения:

View file

@ -1,6 +1,6 @@
# Firewalld Service
Сервис для управления firewalld через D‑Bus.
Сервис для управления firewalld через D-Bus.
Назначение:

View file

@ -1,6 +1,6 @@
# IP Service
Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).
Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).
Назначение:
@ -9,7 +9,7 @@
Требования/ограничения:
- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.
- Доступ к системной шине D-Bus и права на изменения сетевых профилей.
- Структура входных данных должна соответствовать схеме ipv4_updates для корректного обновления вложенных полей у профиля.
### *class* services.ip_service.IPService

View file

@ -1,15 +1,15 @@
# Network Service
Сервис чтения сетевого состояния через NetworkManager (D‑Bus).
Сервис чтения сетевого состояния через NetworkManager (D-Bus).
Назначение:
- Предоставляет асинхронные методы для сборки унифицированных моделей сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения имени хоста. Используется API‑слоем для визуализации и управления.
- Предоставляет асинхронные методы для сборки унифицированных моделей сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения имени хоста. Используется API-слоем для визуализации и управления.
Особенности:
- Фильтрация loopback и явно неактивных интерфейсов.
- Адаптация данных D‑Bus в pydantic‑модели (NetworkInterface, WiFiDevice, NetworkInterfacesContainer).
- Адаптация данных D-Bus в pydantic-модели (NetworkInterface, WiFiDevice, NetworkInterfacesContainer).
### *class* services.network_service.NetworkService(translations: Translations = Depends(translations_dependency))

View file

@ -9,7 +9,7 @@ Bases: `object`
Источники данных:
: - MacLookup: сопоставление префикса MAC (OUI) с названием производителя.
- DNS: gethostbyaddr с малым таймаутом для обратного разрешения имени.
- NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.
- NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.
Политика кэширования:
: - Результаты get_vendor кэшируются с помощью functools.lru_cache.
@ -67,7 +67,7 @@ Bases: `object`
Политика очистки:
- Метод \_clean_old_devices удаляет оффлайн‑устройства, не наблюдавшиеся более 7 дней,
- Метод \_clean_old_devices удаляет оффлайн-устройства, не наблюдавшиеся более 7 дней,
чтобы поддерживать актуальность списка.
#### get_subnet_file(subnet: str) → Path
@ -116,7 +116,7 @@ Bases: `object`
Назначение:
: Обнаруживает активные устройства в локальной сети, отправляя широковещательные
ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).
ARP-запросы по указанной подсети и собирая ответы (IP, MAC).
Детали реализации:
: - Использует scapy (Ether + ARP) для генерации пакетов и srp для
@ -152,7 +152,7 @@ Bases: `object`
Класс для сканирования открытых портов на устройствах.
Назначение:
: Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов
: Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов
у обнаруженных узлов. В текущей версии возвращает пустой список.
План развития:
@ -189,8 +189,8 @@ Bases: `object`
: 1. Определение подсети (вручную или авто по интерфейсу).
2. Загрузка ранее сохранённых устройств подсети.
3. Добавление локального устройства (если принадлежит подсети).
4. ARP‑сканирование и параллельная обработка узлов (обогащение данных).
5. Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.
4. ARP-сканирование и параллельная обработка узлов (обогащение данных).
5. Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.
6. Сортировка по IP и сохранение объединённого списка в JSON.
#### add_note(mac: str, note: str, translations: Translations) → Tuple[bool, Tuple[str, Dict] | None]

View file

@ -4,7 +4,7 @@
Bases: `object`
Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.
Сервис для сканирования текущих Wi-Fi точек доступа и заметок.
Источники данных:
: - pywifi для базового сканирования и получения списка AP.
@ -40,7 +40,7 @@ Bases: `object`
Bases: `object`
Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.
Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.
Формат:
: {

View file

@ -12,7 +12,7 @@ Bases: `object`
где важна минимальная зависимость от внешних сервисов.
Формат данных:
: JSON‑структура вида:
: JSON-структура вида:
{
<br/>
> “users”: [

View file

@ -9,7 +9,7 @@ Bases: `object`
Назначение:
: Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
client_id (например, IP клиента). Предназначено для сред без БД и
persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших
persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших
сессий.
Формат данных:

View file

@ -4,8 +4,8 @@
Содержимое модуля:
: - get_translations(): фабрика зависимости FastAPI, считывающая локаль из
query‑параметра locale, cookie locale или заголовка Accept-Language
(по приоритету), с дефолтом ru. Возвращает функцию‑зависимость, которая
query-параметра locale, cookie locale или заголовка Accept-Language
(по приоритету), с дефолтом ru. Возвращает функцию-зависимость, которая
подгружает babel.support.Translations из каталога SRV/locales.
- \_(): удобная обёртка для получения перевода строки с использованием
текущей локали (или дефолтного ru, если контекст запроса не передан).