Цей проект реалізує бота для Telegram, призначеного для форматованої публікації тексту з Ulysses та інших джерел. Проект складається із self-hosted сервера на базі Express та бібліотеки Grammy для Telegram API, а також Companion Shortcut, який дозволяє швидко надсилати форматований контент до вказаних каналів і чатів.
- Широкі можливості форматування: Бот автоматично парсить markdown-розмітку Ulysses (
md-xxl
) і конвертує її вtg-html
для найкращої сумісності з Telegram. - Гнучкий вхідний контент: Бот приймає будь-які текстові файли (
text/*
MIME-тип) — це дозволяє надсилати як markdown-документи, так і plain text. - Підтримка TextBundle з Ulysses: Проект оптимізований під TextBundle для ідеальної інтеграції з Ulysses, але також працює з будь-яким текстом.
- Управління каналами та чатами: Конфігурація дозволяє налаштовувати список доступних чатів і каналів, де бот є адміном. Shortcut перевіряє їх і надає вибір, куди саме запостити.
- Сумісність із файловою системою: Shortcut підтримує надсилання файлів безпосередньо з файлової системи.
- Підтримка rich-format: Поки що бот обробляє лише текстовий контент з багатим форматуванням (без підтримки медіафайлів, collapse-цитат, spoiler-розмітки та custom-emoji, але це в планах на майбутнє).
- Клонувати репозиторій.
- Встановити залежності:
npm install
- Налаштувати змінні оточення (
.env
) для вашого Telegram бота і списку доступних чатів/каналів. - Запустити сервер:
npm start
- Додати Companion Shortcut на свій пристрій і налаштувати його для взаємодії із сервером.
- Надсилайте текстові файли в бот через Shortcut, використовуючи Share Menu або файлову систему.
- Shortcut перевіряє список доступних чатів/каналів і дозволяє вибрати місце публікації.
- Бот обробляє текст, застосовує форматування та публікує в Telegram.
- Додати підтримку медіафайлів.
- Розширити підтримку розмітки Telegram (collapse, spoiler, custom-emoji).
Цей проект розповсюджується під ліцензією MIT.