Как стать автором
Обновить

Как я организовал канал с мемами, который занимает 10 минут в день

Уровень сложностиПростой

В этой статье покажу, как устроен мой Telegram-канал с IT-мемами: откуда берётся контент, как работает бот-админ, как устроена модерация и планирование постов, и почему диск не умрёт даже через 8000 лет. Возможно, ты захочешь сделать что-то похожее — или предложишь, как улучшить мою систему.

1. Идея и цель проекта

Я каждый день вижу тонну айтишных мемов — то сам натыкаюсь где-то в Telegram, то кто-нибудь скидывает в рабочий чат или в личку. Некоторые из них реально классные, те, которые хочется пересматривать, пересылать друзьям и не терять со временем.

Чтобы не держать мемы в куче чатов, я решил создать личный архив лучших IT-мемов — и оформить его в виде Telegram-канала. Так появилось уютное место, где собраны только топовые штуки из мира IT и тех, кто в теме.

Изначально идея была просто сохранить лучшие мемы — вроде бы ничего сложного. Но на практике это превращается почти в отдельную работу: нужно найти мем, скачать его, проверить формат и качество, не забыть выложить его в канал, а желательно ещё и в нужное время. Если заниматься этим вручную каждый день, то скоро начнёшь чувствовать себя не админом, а SMM-щиком на фуллтайм.

Я понял, что если не автоматизировать процесс, он быстро станет обузой. Поэтому я решил построить систему, которая возьмёт на себя рутину: от сбора и фильтрации до публикации. Так мемы появляются в канале сами, а я просто слежу, чтобы всё работало — как настоящий DevOps для юмора 😄

2. Техническая реализация

Бот, который управляет сбором, модерацией и публикацией мемов, написан на Python. Вся логика упакована в Docker-контейнер и работает через вебхуки на собственном сервере с доменным именем.

В реализации используются две основные библиотеки:

  • aiogram — для обработки Telegram-бота, управления кнопками, модерацией и планированием постов.

  • telethon — для парсинга контента из других Telegram-каналов от имени отдельного Telegram-аккаунта.

Такой стек даёт полный контроль над процессом: можно без ограничений управлять логикой, хранением, расписанием и безопасностью. Всё крутится локально, без сторонних платформ и лишних зависимостей.

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

3. Откуда берутся мемы?

Источник мемов — это отдельная тема. У меня есть пара Telegram-каналов, где я сам регулярно смотрю IT-мемы. Там частенько попадаются настоящие жемчужины. Плюс, друзья и коллеги часто скидывают мне мемы в личку или в рабочих чатах — и среди них тоже много годноты.

Чтобы всё это не терялось, я сделал отдельный канал-помойку — условное место, куда можно быстро переслать всё подряд: то, что увидел сам, и то, что прислали другие. Этот канал служит как временное хранилище: оттуда мемы уже попадают в обработку и, если проходят фильтрацию, отправляются в основной канал.

Контент подбирается гибридным способом — сначала автоматикой, потом — вручную.

Я настроил парсинг всех мемов из выбранных Telegram-каналов, включая мой канал-помойку. Это позволяет собрать максимальное количество потенциально интересных медиа. После этого включается ручная модерация — но она сделана удобно и по-умному.

Для этого я написал Telegram-бот, который по очереди присылает 10 картинок с двумя кнопками под каждым медиа:

  • ✅ Принять

  • ❌ Отклонить

В зависимости от моего решения, бот фильтрует медиафайлы — принятые идут в очередь на публикацию, а отклонённые — навсегда улетают в небытие.

Такой подход позволяет автоматизировать сбор и сортировку, но при этом сохранить человеческий контроль над качеством контента — чтобы в канал попадали только реально годные мемы.

4. Хранилище и фильтрация

После ручной модерации все принятые мемы сохраняются на сервер. Это временное хранилище: как только медиа публикуется в канал, файл сразу удаляется. Такой подход помогает держать диск в порядке и не захламлять его.

Я бы с радостью использовал что-нибудь более щадящее для хранения, но не нашёл подходящего варианта, который был бы таким же простым и автономным. Поэтому решил оставить всё на локальном SSD.

Перед тем как запускать систему, я обсудил это с ChatGPT 😄 — мы прикинули, т.к. в день будет проходить 10 медиафайлов, включая видео, что даёт примерно 50 МБ записи в сутки. Тесты это подтвердили.

И что получается?

Если считать, что обычный бытовой SSD на 500 ГБ рассчитан на ~150 TBW (терабайт записи за весь срок службы), то при такой нагрузке диск будет жить более 8600 лет 😄

Так что, похоже, можно особо не париться.

Бот работает к контейнере Docker
Бот работает к контейнере Docker

5. Планирование и расписание публикаций

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

Фиксированные посты (жёстко заданные таймслоты):

  • 🕘 9:15 — утренний мем, чтобы начать день с улыбки

  • 🕐 13:00 — обеденный, чтобы развеяться во время перерыва

  • 🕕 18:00 — вечерний мем, чтобы закончить рабочий день с настроением

Случайные посты: Кроме фиксированных постов, система публикует ещё остальные 7 мемов в случайное время в интервале с 10:00 до 22:00. Это добавляет элемент неожиданности и держит подписчиков в тонусе.

Вся эта логика реализована в виде скрипта с таймером, который проверяет, не пора ли выложить новый мем, и если да — берёт следующий из очереди.

Код c функцией планировщика
Код c функцией планировщика

6. Логика автоматизации

Вся система построена вокруг одного Telegram-бота-админа, через которого я управляю всем процессом: от парсинга до публикации. Более того — любой желающий может прислать ему мем, если хочет, чтобы тот попал в канал.

Как работает процесс:

  1. Старт:Я нажимаю кнопку в боте — и начинается парсинг новых мемов из всех источников.

  2. Модерация:Бот поочерёдно присылает мне картинки (одна за другой), и я решаю: ✅ принять или ❌ отклонить. Цель — собрать 10 мемов на день.

  3. Формирование расписания:После отбора бот автоматически составляет расписание на весь день, включая жёсткие слоты и случайные таймслоты.

  4. Публикация:Мемы публикуются строго по графику — всё автоматизировано, а я могу просто наблюдать и наслаждаться результатом.

Это всё позволяет держать канал активным, не тратя кучу времени каждый день. Один сеанс модерации утром — и весь день расписан.

7. Подписывайся, делись и участвуй

Канал с мемами я сделал закрытым, однако под каждым постом есть ссылка на вступление — если кому-то понравился мем, он легко может перейти и подписаться. Это пока временное решение, потому что, к сожалению, я не нашёл удобного способа отследить трафик, приходящий именно с постов внутри Telegram.

Если тебе зашла идея и ты кайфанул от мемов — поделись каналом с друзьями, которые тоже варятся в IT и любят хороший юмор. Давайте соберём комьюнити, которое будет не только смотреть, но и делиться своими находками.

У тебя есть идеи, как можно улучшить автоматизацию или добавить что-то новое?
Пиши мне, предлагай — я всегда открыт к улучшениям и с удовольствием реализую интересные фичи.

Подписаться на канал c мемами: https://t.me/+3BvXBuEsiqI4MzIy

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.