Autoposter | Бот для автоматичної публікації в Telegram

До того як зайнятись програмуванням, я довго працював у сфері SMM та копірайтингу. І ось що я можу сказати: планувати пости в телеграм надзвичайно незручно! Освоївши магію Python, я вирішив полегшити життя собі та разом з тим і всім іншим адмінам телеграм. Дозвольте презентувати вам Autoposter — інструмент ефективного контент-менеджера Telegram!

Завдання
Потрібен бот в телеграм, який за запитом створює контент план у Google Sheets і додає певний канал телеграм до бази разом зі згенерованим контент-планом. Бот не повинен обмежуватися лише лімітами Telegram. Шаблон контент-плану має бути доступним для розуміння та водночас доволі гнучким, щоб не обмежувати креативність копірайтера. Усі команди користувачу слід відправляти через кнопки. У меню каналу має бути основна інформація та мінімальна статистика самого каналу. Важливо, щоб бот зберігав інформацію про заплановані пости та зміг відтворити її у випадку падіння сервера.

Технології: aiogram, apshceduler, sqlite, sqlalchemy, Google Sheets API.

Контент-план
Бот використовує Google API для створення та зчитування таблиць Google Sheets. У основі моєї ідеї лежить концепція шаблонів, згідно з якою пост верстається із різних блоків: заголовок, основний текст, медіа інформація, посилання, мітки та вбудовані кнопки. Таким чином я склав 6 шаблонів, які вивів у окрему комірку із випадаючим списком. Бот спроєктований так, щоб можна було легко додавати нові шаблони через конфігураційний файл. Другим важливим елементом є колонка status, де відображається власне статус посту: не готовий, готовий до публікації, запланований та опублікований.

База даних
Бот записує інформацію про користувачів та канали до двох різних таблиць. Архітектура дозволяє реєструвати канали на різних користувачів, а керувати — з одного акаунта. Для того, щоб додати канал до бази, необхідно додати бота до каналу, переслати звідти будь-яке повідомлення, а також вказати свою електронну пошту, на яку прийде лист із посиланням, за яким користувач отримує доступ до згенерованого контент-плану.

Структура меню
У бота є головне меню, яке можна використовувати будь-коли, та деякі додаткові меню, які використовуються в залежності від попередньої команди. Наприклад, меню список каналів, чи меню управління каналом. Інтерфейс створювався виходячи із концепції мінімалізму таким чином, щоб користувач міг дістатися необхідної команди у середньому за 2-3 кліки.

Планування постів
Для планування постів бот використовує apscheduler, якому передає сам пост, час публікації та chat id каналу. Усі завдання бот зберігає в окрему базу даних. Це дозволяє бути певним, що пост точно буде опублікований. Пости можна планувати як окремо для кожного каналу, так і для усіх каналів одночасно, якщо робити це із головного меню. Плануючи публікації, бот повідомляє на якому каналі скільки постів заплановано.

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

Режими
Бот має декілька режимів роботи: free | whitelist | payed | debug. Кожен з цих режимів має свій набір користувачів. Так, наприклад, у free-режимі усі користувачі мають доступ до бота, окрім забанених, а у whitelist — лише ті, хто був доданий до списку.

Резюме
Цей бот для мене виявився доволі цікавим проєкт, адже дозволив повністю пройти всі етапи розробки бізнес-проєкту від наміру до складання технічного завдання, від проєктування до написання коду і тестування. В першу чергу, я розроблював Autoposter'а для своїх потреб, але певний, що лише моїми каналами це не обмежиться. На цю мить, бот знаходиться у режимі whitelist, тому якщо хочете спробувати функціонал, то напишіть мені в ЛС і я додам вас до whitelist.

t.me
Autoposter | Бот для автоматичної публікації в Telegram изображение 1

Работа добавлена: 16.09.22

Наверх