news.multed.com - Новое пришествие
15 July 2026Итак, я стряхнул пыль со старого проекта (LookAtNews) и подумал - а почему бы не попробовать реанимировать его в новых, текущих реалиях. Менее масштабно, конечно, но добавив интересных фишек.
Что это за проект вообще
Когда-то давно у меня в голове зародилась мысль, что надо неприменно сделать сервис, который будет отсеивать (но не скрывать) неважные новости, а то, что цитируют, репостят и вообще делятся - подсвечивать. Время было простое, был и фб, и тви, и много чего было незакрытого - можно было по API получать данные о лайках и репостах.
Идея проста, реализация тоже - быстро накидал прототип, зарегистрировал домен (тогда смотрел только Красноярск), добавил источников и всё заработало, вроде. Пока не наткнулся на первые проблемы.
Первая - нагрузка. Новостей, оказывается, новостные сайты генерируют довольно много (в будни больше, в выходные поменьше). Собрать и положить в базу - не проблема, а вот посмотреть по каждой новости данные по лайкам-репостам уже становится накладно. Более того, надо же как-то обновлять данные и строить графики - мне тогда была интересна динамика. В день получалось что-то около тысячи-двух новостей суммарно по всем источникам. Это, повторюсь, я смотрел только один Красноярск. И статистику дёргал в день публикации каждый час, потом сильно пореже и начал упираться в лимиты того же фб по запросам к его API. Графики стали чуть жиже, но всё равно можно было отслеживать динамику репостов по дням. Были случаи, когда старая новость вдруг вирусилась и получался один пик, второй.
Вторая - SMM-щики любят данные о том, откуда приходит к ним аудитория. А самое простое - добавлять utm-метки в ссылки. Для API уже ссылка новая, статистика по ней считается отдельно. Эта боль была прям, которую я не победил. Пытался собираться данные по чистой ссылке + с метками (это увеличивает запросы к API) - но не всегда всё работало как надо.
Третья - технический стек был весьма неоптимальным. Ruby 2.x и MongoDB, который на ограниченных ресурсах был весьма медленным. Но не сразу, а после того, как новостей в базе становилось под два миллиона - начинались тормоза жуткие. Долго боролся, пока не перенёс базу на PostgreSQL - забегало сильно быстрее, но это случилось уже сильно позже, а до этого просто чистил БД от старых записей.
Так как социальная статистика стала хромать на обе ноги, логично было предположить, что событие важное, если про него пишут несколько изданий. Тут и начался путь группировки новостей - долгий, сложный, изнурительный. Но эта задача, в целом, была решена, как и наращивание объёмов сбора данных.
Итого, на пике были почти все регионы России (у каждого старался держать не менее десятка местных изданий), более тысячи источников, которые обновлялись не реже раза в полчаса, группы новостей, которые формировались не реже раза в полчаса. При этом нагрузка на VPS была весьма значительной, поначалу. После разных оптимизаций, после переписывания на Rails + Postgres + Sidekiq, вся эта махина работала на одном OrangePi 5 16Gb RAM / 256Gb NVMe и обрабатывала более миллиона хитов в месяц.
Про то, что осталось
Парсинг остался прежним. Получаю ссылки спомощью rss-фида, как и раньше. У каждого источника может быть несколько фидов, перебираю по очереди. Если текста мало, то лезу по ссылке на сайт за добавкой.
Разбивка на регионы - тоже прежняя. Можно регионы, можно собирать новости по отраслям, например.
Привязка к региону группы новостей, поиска - это всё осталось тоже.
Про масштаб
Четыре региона (соседи + федералы), а не как в прошлый раз (много), не более десятка источников на регион (а не как в прошлый раз - под полторы тысячи ссумарно). Нагрузки меньше, группировка и обновление лент - быстрее.
Про новые фишки
Новые технологии привнесли новые возможности. Группировка теперь намного быстрее - всякие вектора, эмбеддинги. Вот это всё. Но нужны ресурся для подготовки данных.
А ещё из вкусностей категории новостей с фильтрацией. Теперь, в принципе, можно показывать новости какой-то категории и всё равно, в каком она регионе собралась. Это в теории, но реализация простая.
Переключатель “Добрые новости” - выбор новостей с тональностью позитивней нейтральной. Крутая штука, которая с моими ресурсами даётся сложно.
А ещё затратно - генерировать саммари новостей в какой-нибудь группе, хотя фишка классная.
Про планы
Про планы писать, с одной стороны, просто, а с другой сложно. Частая борьба между хочется и можется. А именно:
- найти ресурсы и ускорить механизмы, которые сейчас страдают: категории, тональность, саммари;
- сделать варианты ленты новостей: по времени, по популярности темы, по интересам;
- на основе этого комплекса сделать инструменты для редакций сетевых изданий;
- поиски интересных форматов для привлечения аудитории без ущерба контент-мейкерам.
Часть из списка - хотелки. Часть - уже сформированные в общих чертах планы. Увидим, что получится сделать, а что так и останется в хотелках.
Итак, домен решил не придумывать какой-то отдельный, а использую поддомен - Агрегатор новостей