NewsHub
12 subscribers
5 photos
2 videos
developer diary
Download Telegram
Channel created
Channel photo updated
🚀 Запускаем дневник разработки NewsHub

Первый пост: что бот уже умеет прямо сейчас

Привет. Мы делаем NewsHub — это Telegram-бот, который собирает новости из выбранных вами каналов в один личный поток, режет шум и постепенно учится на вашей реакции.

💡 Идея: если вы живёте в Telegram-повестке, бот должен помочь не утонуть в ней.

На текущем этапе у нас уже работает базовый контур продукта.

---

🧩 Что бот уже умеет

1. Подключать Telegram-каналы и группы
Можно отправить @channel_name или ссылку t.me/...
Причём сразу несколько источников — списком, по одному на строку.

После этого бот:
• ставит источник в очередь
• подключает канал
• синхронизирует историю
• начинает отслеживать новые посты

---

2. Присылать новые посты в личку
Когда в одном из ваших источников появляется новый пост — бот присылает его вам в личный чат.

То есть уже сейчас NewsHub работает не как «когда-нибудь потом будет красиво», а как живой персональный приёмник новостей по вашим подпискам.

---

3. Саммаризировать длинные посты
• Если пост длинный — бот присылает короткую выжимку на 1–3 предложения.
• Если короткий — приходит без искусственного «улучшайзинга».
• Саммаризацию можно включать и выключать вручную.

---

4. Учиться на реакциях
Под каждым постом уже есть быстрые реакции: 👎 / 👍 / 🔥

Это не декоративные кнопки — бот реально учится по ним.
👎 — мимо
👍 — нормально, релевантно
🔥 — вот такого давай больше

---

5. Фильтровать поток
Доступны несколько режимов:
• Всё присылать — все новые посты
• Не пересылать неинтересные — отсекать слабые посты
• Только огненные — оставлять самые сильные
• Не пересылать, читать только дайджест — отключить live‑поток, оставить итоговую сводку

Бот уже может работать и как личная лента, и как тихий режим без постоянных пересылок.

---

6. Собирать ежедневный дайджест
Можно:
• включить или выключить дайджест
• задать время доставки
• указать город или UTC‑смещение, чтобы бот понял ваш часовой пояс

Сейчас дайджест формируется раз в сутки и охватывает последние 24 часа по подпискам.
При этом это не просто список ссылок — бот пытается:
• группировать посты в общие сюжеты
• собирать материалы по каналам
• отдельно складывать всё прочее

---

7. Управлять подписками
Уже можно:
• посмотреть список активных подписок
• удалить источник
• вернуться назад без командной археологии

---

8. Работать с тарифом и оплатой
Монетизация уже встроена в продукт.

Базовая логика:
• до 7 подписок бесплатно
• дальше лимит можно расширять пакетами
+10 подписок — за 49 ₽
• есть промокоды
• виден статус оплаты
• есть ссылка на оплату через T‑Bank

---

🧠 В следующем посте расскажем, как бот учится на реакциях и собирает интеллектуальный профиль ваших интересов.
Доброго дня, выкатили новое обновления на дев, сейчас уже в тесте:
Английский язык, оплата в крипте, новая подписка (полный безлимит) за 290 рублей в месяц вместо 49 за 10 пользователей (идея в том чтобы фокусироваться на профессионалов)
+ ништяки для разрабов- накрутили графану с метриками, теперь будем все мерить
👍2
Е-хо-хо набираем обороты 🚀
Поменяли систему подписки (теперь считаем подписку по дням 30/90/180/365, и чуть увеличили ценники, а то торговали в убыток))
Выкатили ai фильтрацию (пока сделали очень просто-вы задаете боту промпт по фильтрованию для кажждой группы либо по всем групппам, например "не присылай мне новости спорта" и после этого он будет валидировать новость перед каждой пересылкой
USECASE: покупаешь подписку на нашего бота, подписываешь его на кучу пабликов с горящими турами, пишешь аи фильтрацию чтобы он рассматривал только туры в Тайланд, и после этого тебе сыпяться туры только в тай 😉)
+ теперь если ваши подпски постят много фоточек котиков- теперь вы сможете их разгледеть в полной мере насколько вам позволят 20 мгб)
🔥2
новый день новый апдейт!
Мы добавили в бота безопасный текстовый слой управления настройками через NLU-роутер. Идея не в том, чтобы LLM “сам управлял ботом”, а в том, чтобы пользователь писал обычным языком, а система превращала фразу в строго ограниченный intent + slots, после чего всё остальное уже делает backend.

Сейчас бот умеет понимать текстовые запросы такого типа:

показать настройки
показать подписки
добавить или удалить подписки
поменять фильтр пересылки
включить или выключить live-пересылку
включить или выключить саммаризацию
управлять дайджестом
переключать язык
показывать статус тарифа
отвечать на FAQ-темы через backend-шаблоны
Сегодня на очереди:
Улучшили навигацию благодаря emoji, надеюсь вам станет удобнее)))
+ добавили оплату в старсах)))
Ура, переехали девом на новый сервер, теперь будем надеяться мощности прода хватит на всех))
+Выкатили небольшой косметический апдейт
Сделали небольшой юзербот балансировщий:
Балансировщик юзерботов выбирает слот (primary или secondary) в момент создания новой подписки, а не во время доставки постов. Он берёт список “здоровых” слотов из userbot_accounts (только status='active' и без активного flood_wait_until), затем для каждого считает текущую нагрузку как active communities + pending subscription requests. Выбирается слот с минимальной нагрузкой; при этом используется advisory lock в PostgreSQL, чтобы параллельные подписки не уехали в один и тот же слот из-за гонки. Дополнительно действует порог USERBOT_PRIMARY_MAX_GROUPS: если слот уже перегружен, он временно не участвует в выборе, пока есть альтернатива. За счёт этого новые группы автоматически “растекаются” между аккаунтами и система переживает FloodWait одного из них без ручного переключения.

По взаимодействию компонентов схема такая: бот принимает команду на подписку и сохраняет subscription_request уже с выбранным userbot_slot. Дальше Celery-воркер нужной очереди обрабатывает запрос, а соответствующий userbot-контейнер (userbot для primary, userbot_secondary для secondary) выполняет Telegram-операции через свою Telethon-сессию. userbot_owner работает как оркестратор/операционный слой: он знает все аккаунты по слотам и использует их сессии для owner-операций, копируя базовые session-файлы при старте. Важно, что распределяются только новые подписки: уже привязанные сообщества остаются на своём слоте (sticky-модель), поэтому “перебаланс” старых групп отдельно не происходит. В итоге primary и secondary не дублируют одну работу, а делят её по слотам и очередям, сохраняя изоляцию аккаунтов и предсказуемость нагрузки.
Мы стали чуть ближе))
Теперь с нами можно связаться на прямую))
Обязуемся рассматривать ваши заявки к поддержке в теченнии 24 часов🫡

Кстати, еще замутили акцию, первые 10 человек обратившихся в поддержку, получат премиум на месяц бесплатно (иногда полезно читать дневники разработчиков🙃)
Друзья, привет!

В прод боте @NewsHubFeedBot уже несколько дней как выкачена тестовая версия моего модуля "Отслеживание сюжетов". Поначалу было всё совсем плохо, но сейчас я дотянул её до какого-то более-менее вменяемого состояния и прошу вашей помощи, чтоб довести логику до состояния ок.

Под live-пересылкой постов из ваших подписок появились кнопки "Хронология сюжета" и "Следить за сюжетом".

Хронология соберёт вам краткий пересказ сюжета root поста по всему релевантному, что есть у нас в БД. Работает пока с некоторыми ограничениями, которые ежедневно дотюниваются.

Следить за сюжетом - создаст вам подписку на сюжет этого поста и вы будете получать обновления по этому сюжету в том числе из тех источников, которых нет у вас в подписках.

Тут, конечно, тоже есть некоторые ограничения для тестовой версии модуля. Плохой сюжет - "Всего за 5 тысяч рублей можно улететь из Москвы в Египет в эту пятницу." Это крайность. Никакого релевантного развития ему система найти не сможет. Хороший сюжет - "Путин сказал, что СВО скоро всё". Сюжет определяется по тому посту, под которым вы прожали "отслеживать". Чем больше в нём деталей - тем приятнее системе. Но важно так же попробовать его и на более общих постах. Главное, чтоб у них был потенциал отслеживания и развития.

В настройках бота появилась опция "Отдельный диалог". Вы можете вынести доставки отслеживания сюжетов в отдельное диалоговое окно, чтоб они не перемешивались с общей live-пересылкой.

Буду признателен за любую ОС по этому UX!! Можно сюда в чат или мне в ЛС, спасибо!❤️
🔥2
давно небыли на связи, сейчас на двеве уже запекаеться перед выходом в прод:
Сделали веб-кабинет NewsHub
Добавлен browser UI на /web: авторизация через Telegram, feed, digest, storylines, subscriptions, settings, billing. Теперь NewsHub есть в web.

Переделали onboarding внутри Telegram-бота
Новый пользователь теперь не видит сразу большое меню. Он проходит сценарий:
задача → первый источник → уровень шума → “новостная сеть подключена”.
Профиль задачи сохраняется в БД.

Переименовали фильтры на человеческий язык
Было: all / not_interesting / only_fire / digest_only.
Стало: “Всё из источников”, “Без очевидного шума”, “Только важное”, “Только дайджест”.

Стабилизировали prod-инфру
Добавлены настройки Celery/RabbitMQ heartbeat/reconnect/acks, защита от DB URL с /None, idempotent ingest постов, idempotent instruction decisions, обработка topic timeout, DB fallback для pending actions, /metrics в embeddings service.

Добавили админский метод удаления данных пользователя
Новый сервис и API для поддержки: можно безопасно сделать dry-run, увидеть сколько данных будет удалено, и потом удалить все связанные пользовательские данные.
🔥1🏆1