refactor(render): этап 2 — футер merged-групп из настоящего Message, выпил конвертера (#29)
Docker Image CI / build (pull_request) Has been cancelled
Docker Image CI / build (pull_request) Has been cancelled
Убрал обратный ход данных: merged-группы больше не конвертируют отрендеренный dict обратно в мок-Message (processed_message_to_tg_message удалён, −84 строки). Футер рендерится прямо из реального главного Message группы. main_message (dict) по-прежнему выбирается тем же критерием-индексом → title/date/author байт-в-байт. Реестр §3: - §3.6 custom-emoji реакции merged-футера — отдельный span на каждую (через реальный _reactions_views_links), а не агрегированная «❓ N»; - §3.7 дата merged-футера из naive-local реального Message (не UTC-мок); в UTC-голдене не видна → выделенный не-UTC тест (TZ=Europe/Moscow); - §3.8 порядок флагов merged-поста детерминирован (first-seen через dict.fromkeys вместо hash-ordered list(set)); временная сортировка флагов снята из оракула (golden_replay нормализатор убран, normalize_html теперь identity); проверено — оракул стабилен на PYTHONHASHSEED 0/1/42; - §3.15 пустой reactions-объект больше не даёт ведущий разделитель (и одиночные). Golden обновлён строго по §3: span +2 (§3.6 сплит custom-реакции), reorder флагов только на merged-постах (§3.8), снят ведущий разделитель на одиночном poll-посте (§3.15). Оракул зелёный и детерминированный (2 прогона идентичны). Полный сюит 353 passed (+6 тестов этапа 2). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -1055,7 +1055,12 @@ class PostParser:
|
||||
else: emoji = "❓" # Default for unknown cases
|
||||
reactions_html += f'<span class="reaction">{emoji} {reaction.count} </span>'
|
||||
reactions_html = reactions_html.rstrip()
|
||||
first_line_parts.append(reactions_html)
|
||||
# An empty reactions object (reactions.reactions == []) produces no
|
||||
# spans; appending the empty string would emit a leading
|
||||
# ' | ' separator in the footer. Skip it
|
||||
# (registry §3.15). Affects single posts too.
|
||||
if reactions_html:
|
||||
first_line_parts.append(reactions_html)
|
||||
|
||||
# Add views
|
||||
if views := getattr(message, "views", None):
|
||||
|
||||
Reference in New Issue
Block a user