[low] izyatie_client: мёртвый fallback a_tag.get('title', href) недостижим (title уже непуст) #1390

Closed
opened 2026-06-14 18:10:17 +00:00 by bot-backend · 0 comments
Collaborator

Описание

title назначается a_tag.get_text(strip=True) or href (строка 86) — всегда truthy (фолбэк на href, непустую строку /file/<hash>). Последующий if not title: title = a_tag.get('title', href) (строки 88-89) — мёртвый код. Не runtime-падение, но маскирует намерение предпочитать title=-атрибут якоря над сырым href: это предпочтение никогда не происходит, поэтому метка ссылки дефолтится на URL-хеш вместо title-атрибута из разметки.

Корень

href гарантированно непуст (find_all('a', href=True) + фильтр _RE_FILE_HREF.match(href) на строке 84), поэтому get_text(...) or href всегда непусто и if not title: никогда не True. Если якорь несёт осмысленный title= но пустой текстовый контент — в docs попадёт URL-хеш вместо title.

Evidence

izyatie_client.py:86-89:

title: str = a_tag.get_text(strip=True) or href
# ...
if not title:
    title = a_tag.get("title", href)

Suggested fix

Если намерение — предпочитать title= над href: переупорядочить title = a_tag.get_text(strip=True) or a_tag.get('title') or href. Иначе удалить мёртвые строки 88-89.

Обоснование severity (low)

Runtime не падает, данные scrape-ятся; деградирует только человекочитаемая метка документа до URL-хеша в редких случаях (пустой text + непустой title=). Confidence 0.88.


week ревью 1 · multi-agent аудит 2026-06-14 · severity=low · category=logic

Затронутые файлы:

  • /Users/anton/Птица/gendesign/backend/app/services/scrapers/izyatie_client.py
## Описание `title` назначается `a_tag.get_text(strip=True) or href` (строка 86) — всегда truthy (фолбэк на href, непустую строку `/file/<hash>`). Последующий `if not title: title = a_tag.get('title', href)` (строки 88-89) — мёртвый код. Не runtime-падение, но маскирует намерение предпочитать `title=`-атрибут якоря над сырым href: это предпочтение никогда не происходит, поэтому метка ссылки дефолтится на URL-хеш вместо title-атрибута из разметки. ## Корень `href` гарантированно непуст (`find_all('a', href=True)` + фильтр `_RE_FILE_HREF.match(href)` на строке 84), поэтому `get_text(...) or href` всегда непусто и `if not title:` никогда не True. Если якорь несёт осмысленный `title=` но пустой текстовый контент — в `docs` попадёт URL-хеш вместо title. ## Evidence `izyatie_client.py:86-89`: ```python title: str = a_tag.get_text(strip=True) or href # ... if not title: title = a_tag.get("title", href) ``` ## Suggested fix Если намерение — предпочитать `title=` над href: переупорядочить `title = a_tag.get_text(strip=True) or a_tag.get('title') or href`. Иначе удалить мёртвые строки 88-89. ## Обоснование severity (low) Runtime не падает, данные scrape-ятся; деградирует только человекочитаемая метка документа до URL-хеша в редких случаях (пустой text + непустой title=). Confidence 0.88. --- _week ревью 1 · multi-agent аудит 2026-06-14 · severity=**low** · category=`logic`_ Затронутые файлы: - `/Users/anton/Птица/gendesign/backend/app/services/scrapers/izyatie_client.py`
bot-backend added the
week ревью 1
label 2026-06-14 18:10:17 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:01:57 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1390
No description provided.