Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

30.08.2024

Попередній перегляд постів в Telegram

#МетаПост


Маленька демонстрація. Ліворуч VSCode, праворуч Telegram. Оновлюється на збереження.

Почав з реалізації попереднього перегляду для Telegram, бо тут вже більше коду готово. Виявилося, базовий тестовий скрипт не так вже й складно зробити. Чим воно відразу відрізняється від звичайної функціональності Hugo - замість всього сайту перегляд працює тільки з одним постом. Звісно, того ми й хочемо, але: тоді ще й потрібно щоб користувач обрав пост, над яким працює. (Або ні… є ідеї.)

В основі лежить спостереження за змінами в файлах; випробував новий для мене модуль fsnotify для Go. Він робить приблизно те, що від нього й очікуєш; хіба що не вміє стежити за деревом каталогів — але поки мені взагалі достатньо й одного файлу.

Далі, в тестовому каналі в Telegram створюю порожній пост. (Можна було б навіть брати останній, але технічно простіше створювати новий на кожний запуск скрипту.) Пост можна скільки завгодно редагувати, причому він оновлюється в клієнті наживу, навіть з прокруткою до нового змісту.

Залишається отримувати події про зміни з fsnotify, перемальовувати пост (тобто конвертувати з Markdown в Telegram HTML), та надсилати через API. Обмеження на частоту запитів значення не мають. Єдине, що Telegram не дозволяє надсилати новий зміст такий самий, як наявний. Але то дрібниці.

Певно, найскладнішою частиною було видерти з того скрипту, що вже є, саме промальовку. Бо, уявляєте, там водночас відбувається і промальовка, і валідація, і таке інше. Поки рішення на рівні “накопіпастив та повидаляв зайве”. Взагалі з публікацією в декілька сервісів буде цікаво, бо наразі читання метаданих та конвертація Markdown в HTML логічно спарені.

Поки дуже задоволений, прототип вже спрощує життя.