mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
fix+docs: classifier/publisher правки, sources.yaml расширен, глоссарий CONTEXT.md + docs/agents, backup.sh; openspec post-translate/rewrite-as-author/rich-repost-card/selected-layout-stay
This commit is contained in:
+29
-4
@@ -93,9 +93,28 @@ import re
|
||||
# Направление по умолчанию, если ничего не подошло
|
||||
DEFAULT_DIRECTION = "linux" # прототип: все посты про linux окружение
|
||||
|
||||
# Правила по источнику (slug в sources.yaml): принудительное направление
|
||||
# для всего контента источника, независимо от словаря/LLM.
|
||||
# LWN — технологическое СМИ: весь контент → tech.
|
||||
SOURCE_RULES: dict[str, list[str]] = {
|
||||
"lwn": ["tech"],
|
||||
}
|
||||
|
||||
def find_directions_all(text: str) -> list[str]:
|
||||
"""Возвращает ВСЕ направления, которым соответствует текст (для мультинаправлений/fan-out)."""
|
||||
|
||||
def source_directions(source_slug: str | None) -> list[str]:
|
||||
"""Направления, принудительно назначенные источнику (SOURCE_RULES)."""
|
||||
return list(SOURCE_RULES.get(source_slug or "", []))
|
||||
|
||||
|
||||
def find_directions_all(text: str, source_slug: str | None = None) -> list[str]:
|
||||
"""Возвращает ВСЕ направления, которым соответствует текст (для мультинаправлений/fan-out).
|
||||
|
||||
Если для источника задано правило SOURCE_RULES — возвращает его направления
|
||||
(принудительно), иначе — словарные попадания.
|
||||
"""
|
||||
forced = source_directions(source_slug)
|
||||
if forced:
|
||||
return forced
|
||||
text_low = (text or "").lower()
|
||||
hits = set()
|
||||
for direction, cfg in DIRECTIONS.items():
|
||||
@@ -112,8 +131,14 @@ def find_directions_all(text: str) -> list[str]:
|
||||
return list(hits)
|
||||
|
||||
|
||||
def find_direction(text: str) -> str | None:
|
||||
"""Возвращает направление, если текст совпал со словарём (иначе None)."""
|
||||
def find_direction(text: str, source_slug: str | None = None) -> str | None:
|
||||
"""Возвращает направление: правило источника (SOURCE_RULES) или словарное.
|
||||
|
||||
Принудительное правило источника имеет приоритет над словарём.
|
||||
"""
|
||||
forced = source_directions(source_slug)
|
||||
if forced:
|
||||
return forced[0]
|
||||
dirs = find_directions_all(text)
|
||||
if dirs:
|
||||
return dirs[0]
|
||||
|
||||
Reference in New Issue
Block a user