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:
@@ -7,7 +7,7 @@
|
||||
<docs>http://www.rssboard.org/rss-specification</docs>
|
||||
<generator>python-feedgen</generator>
|
||||
<language>ru</language>
|
||||
<lastBuildDate>Mon, 06 Jul 2026 04:36:27 +0000</lastBuildDate>
|
||||
<lastBuildDate>Mon, 06 Jul 2026 14:33:41 +0000</lastBuildDate>
|
||||
<item>
|
||||
<title>Интересно при чтении нехудожественных книг...</title>
|
||||
<link>https://t.me/embedoka/1337</link>
|
||||
@@ -114,7 +114,7 @@
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">⭐ 2 </span><span class="reaction">❤ 41 </span><span class="reaction">🔥 10 </span><span class="reaction">😭 7 </span><span class="reaction">🤪 4 </span><span class="reaction">👍 3 </span><span class="reaction">🎉 2 </span><span class="reaction">🫡 1 </span><span class="reaction">🦄 1 </span> | <span class="views">4253 👁</span> | <span class="date">06/03/25, 18:05:55</span> | <span class="message-id">#1341</span><br><a href="tg://resolve?domain=embedoka&post=1341">Open in Telegram</a> | <a href="https://t.me/embedoka/1341">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1341</guid>
|
||||
<pubDate>Thu, 06 Mar 2025 18:05:55 +0000</pubDate>
|
||||
</item>
|
||||
@@ -236,7 +236,7 @@
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">🤯 11 </span><span class="reaction">🤔 5 </span><span class="reaction">🤷♂ 2 </span><span class="reaction">👍 2 </span><span class="reaction">🌚 1 </span> | <span class="views">4720 👁</span> | <span class="date">10/04/25, 08:45:12</span> | <span class="message-id">#1350</span><br><a href="tg://resolve?domain=embedoka&post=1350">Open in Telegram</a> | <a href="https://t.me/embedoka/1350">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1350</guid>
|
||||
<pubDate>Thu, 10 Apr 2025 08:45:12 +0000</pubDate>
|
||||
</item>
|
||||
@@ -434,7 +434,7 @@
|
||||
<div class="message-poll">📊 Poll: Стоит ли выкладывать копии релевантных видео в канал (для участников, у которых ограничен доступ к ютьюб)? И вообще дублировать какой-либо контент в тг, доступ к которому может быть ограничен?<br>1. да<br>2. нет<br>3. всё равно<br>4. напишу в комментариях<br><br>→ Vote in Telegram 🔗<br></div>
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
| <span class="views">3822 👁</span> | <span class="date">05/05/25, 17:21:14</span> | <span class="message-id">#1363</span><br><a href="tg://resolve?domain=embedoka&post=1363">Open in Telegram</a> | <a href="https://t.me/embedoka/1363">Open in Web</a>
|
||||
<span class="views">3822 👁</span> | <span class="date">05/05/25, 17:21:14</span> | <span class="message-id">#1363</span><br><a href="tg://resolve?domain=embedoka&post=1363">Open in Telegram</a> | <a href="https://t.me/embedoka/1363">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 no_image 🏷 poll </div></div>]]></description>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1363</guid>
|
||||
<pubDate>Mon, 05 May 2025 17:21:14 +0000</pubDate>
|
||||
@@ -559,7 +559,7 @@
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">🔥 35 </span><span class="reaction">👍 13 </span><span class="reaction">👏 3 </span><span class="reaction">🤔 3 </span><span class="reaction">❤ 2 </span><span class="reaction">✍ 1 </span><span class="reaction">🤯 1 </span> | <span class="views">4838 👁</span> | <span class="date">22/05/25, 07:49:49</span> | <span class="message-id">#1370</span><br><a href="tg://resolve?domain=embedoka&post=1370">Open in Telegram</a> | <a href="https://t.me/embedoka/1370">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1370</guid>
|
||||
<pubDate>Thu, 22 May 2025 07:49:49 +0000</pubDate>
|
||||
</item>
|
||||
@@ -1097,7 +1097,7 @@ The SM9 module boasts <b>hardware compatibility</b> with NVIDIA Jetson series mo
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">⭐ 1 </span><span class="reaction">❤ 6 </span><span class="reaction">🤣 4 </span><span class="reaction">👍 3 </span><span class="reaction">🤔 2 </span><span class="reaction">✍ 1 </span><span class="reaction">🔥 1 </span><span class="reaction">🦄 1 </span> | <span class="views">3573 👁</span> | <span class="date">14/08/25, 08:10:58</span> | <span class="message-id">#1400</span><br><a href="tg://resolve?domain=embedoka&post=1400">Open in Telegram</a> | <a href="https://t.me/embedoka/1400">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1400</guid>
|
||||
<pubDate>Thu, 14 Aug 2025 08:10:58 +0000</pubDate>
|
||||
</item>
|
||||
@@ -1218,7 +1218,7 @@ The SM9 module boasts <b>hardware compatibility</b> with NVIDIA Jetson series mo
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">⭐ 2 </span><span class="reaction">👍 29 </span><span class="reaction">✍ 4 </span><span class="reaction">❤ 3 </span><span class="reaction">🔥 1 </span><span class="reaction">🤔 1 </span> | <span class="views">6052 👁</span> | <span class="date">02/09/25, 10:40:26</span> | <span class="message-id">#1411</span><br><a href="tg://resolve?domain=embedoka&post=1411">Open in Telegram</a> | <a href="https://t.me/embedoka/1411">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1411</guid>
|
||||
<pubDate>Tue, 02 Sep 2025 10:40:26 +0000</pubDate>
|
||||
</item>
|
||||
@@ -1506,8 +1506,8 @@ The SM9 module boasts <b>hardware compatibility</b> with NVIDIA Jetson series mo
|
||||
<br>
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">⭐ 1 </span><span class="reaction">🔥 13 </span><span class="reaction">❓ 6 </span><span class="reaction">😁 3 </span><span class="reaction">❤ 1 </span><span class="reaction">👍 1 </span> | <span class="views">3365 👁</span> | <span class="date">10/04/26, 09:13:01</span> | <span class="message-id">#1428</span><br><a href="tg://resolve?domain=embedoka&post=1428">Open in Telegram</a> | <a href="https://t.me/embedoka/1428">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<span class="reaction">⭐ 1 </span><span class="reaction">🔥 13 </span><span class="reaction">❓ 4 </span><span class="reaction">😁 3 </span><span class="reaction">❓ 2 </span><span class="reaction">❤ 1 </span><span class="reaction">👍 1 </span> | <span class="views">3365 👁</span> | <span class="date">10/04/26, 09:13:01</span> | <span class="message-id">#1428</span><br><a href="tg://resolve?domain=embedoka&post=1428">Open in Telegram</a> | <a href="https://t.me/embedoka/1428">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1428</guid>
|
||||
<pubDate>Fri, 10 Apr 2026 09:13:01 +0000</pubDate>
|
||||
</item>
|
||||
@@ -1569,7 +1569,7 @@ The SM9 module boasts <b>hardware compatibility</b> with NVIDIA Jetson series mo
|
||||
</div><br></div>
|
||||
<div class="message-footer"><br>
|
||||
<span class="reaction">👏 11 </span><span class="reaction">🤯 6 </span><span class="reaction">👍 5 </span><span class="reaction">🔥 2 </span><span class="reaction">❓ 2 </span><span class="reaction">🫡 1 </span> | <span class="views">3233 👁</span> | <span class="date">04/05/26, 14:04:48</span> | <span class="message-id">#1433</span><br><a href="tg://resolve?domain=embedoka&post=1433">Open in Telegram</a> | <a href="https://t.me/embedoka/1433">Open in Web</a>
|
||||
<br><div class="message-flags"> 🏷 mention 🏷 link 🏷 merged </div></div>]]></content:encoded>
|
||||
<br><div class="message-flags"> 🏷 link 🏷 mention 🏷 merged </div></div>]]></content:encoded>
|
||||
<guid isPermaLink="true">https://t.me/embedoka/1433</guid>
|
||||
<pubDate>Mon, 04 May 2026 14:04:48 +0000</pubDate>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user