Проект: unpin bot  Публичный пост
9 января 2023  407
unpin bot

Привет, я Денис (●´ω`●)
... иногда пилю небольшие проекты для opensource
В этот раз все началось с того, что в чатике Грузии разрешили всем участникам закреплять сообщения. После этого появилась идея сделать бота, который прибирает за людишками и автоматом открепляет сообщения временных эвентов в чате спустя N дней.

Демо

Что вошло в прототип и сколько времени на него было потрачено?

Пока реализовал базовый функционал реплая на запиненное сообщение и открепления его спустя выбранное время.

Сам проект небольшой, ушло пару дней на реализацию и запуск прототипа.

Какой технологический стек вы использовали? Почему?

Решил потестить lib, которые пока страшно тащить в prod.
По этому под капотом Python и pyrogram которые реализует MTProto. В качестве базы - Postgres и прикольная orm gino.

Вот так выглядит логика открепления сообщения в псевдокоде:

while True:
    messages = 'select * from unpin';
    messages.unpin()
    sleep()

вот ссылочка на кот: github.com

Инфраструктура это GitHub CI для сборки образов, Docker на виртуалки и Ansible как клей, который все деплоит. Могу выложить плейбук, если интересно.

Минусы/Плюсы выбранного стека:

  • pyrogram - не хранит состояния и при редиплое теряет сообщения. Плюс, что работа идет напрямую с MTProto, хотя для данного проекта это не дало плюсов.
  • gino - интересный асинхронный orm, но очень сырой и нехватка документации.

кот поселился тут: github-кот

Какие планы на будущее?

-[ ] доставать даты прямо из сообщений
-[ ] добавить команду для пина сообщений

Технические:

-[ ] перейти на webhook или long polling, чтобы не терять сообщения при редиплое
-[ ] тесты ¯\_(ツ)_/¯

Нужны ли какие-то советы или помощь Клуба?

Классно было бы получить советы, что можно еще добавить и найти добрых людей, которые готовы писать issues и слать PR.

Всем спасибо за внимание (づ。◕‿‿◕。)づ ♡

Откомментируйте первым 👇

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб