Что такое плагин?
Мы хотим, чтобы grammY был легковесным и маленьким, но при этом расширяемым. Почему? Потому что не все используют всё! Плагины создаются как дополнительные функции, добавляемые к программе.
Плагины grammY
Некоторые плагины напрямую встроены в основную библиотеку grammY, потому что мы предполагаем, что они нужны многим ботам. Это облегчает новым пользователям их использование, без необходимости устанавливать новый пакет.
Большинство плагинов публикуются вместе с основным пакетом grammY, мы называем их официальными плагинами. Они устанавливаются с @grammyjs
на npm, и публикуются под организацией @grammyjs на GitHub. Мы координируем их релизы с релизами grammY и следим за тем, чтобы все хорошо работало вместе. Каждый раздел документации по официальному плагину имеет название пакета в заголовке. Например, плагин grammY runner (runner
) должен быть установлен через npm install @grammyjs
. (Если вы используете Deno, а не Node.js, вам следует импортировать плагин из https://mod
модуля grammy
).
Есть также несколько сторонних плагинов. Их может опубликовать любой желающий. Мы не даем никаких гарантий, что они актуальны, хорошо документированы или работают вместе с другими плагинами. Если вы хотите, ваш собственный сторонний плагин также может быть размещен на сайте, чтобы о нем узнало больше людей.
Обзор
Мы подготовили для вас обзор с кратким описанием каждого плагина. Установка плагинов — это весело и просто, и мы хотим, чтобы вы знали, что мы приготовили для вас.
Нажмите на название любого пакета, чтобы узнать больше о соответствующем плагине.
Плагин | Пакет | Описание |
---|---|---|
Sessions | из коробки | Храните данные о пользователях в своей базе данных |
Inline and Custom Keyboards | из коробки | Упрощеняет создание встроенных и пользовательских клавиатур |
Media Groups | из коробки | Упрощенает отправку медиагрупп и их редактирование |
Inline Queries | из коробки | Легкое создание результатов для встроенных запросов |
Auto | auto | Автоматическое ограничение скорости |
Conversations | conversations | Создание мощных разговорных интерфейсов и диалогов |
Chat Members | chat | Отслеживайте, какой пользователь присоединился к чату |
Emoji | emoji | Упростите использование эмодзи в коде |
Files | files | Удобная работа с файлами |
Hydration | hydrate | Вызывайте методы в объектах, возвращаемых из вызова API |
Internationalization | i18n или fluent | Пусть ваш бот говорит на нескольких языках |
Interactive Menus | menu | Создавайте динамические кнопочные меню с гибкой навигацией |
Parse Mode | parse | Упростите форматирование сообщений |
Rate Limiter | ratelimiter | Автоматически ограничивайте пользователей, которые спамят |
Router | router | Направляйте сообщения в разные части вашего кода |
Runner | runner | Одновременное и масштабное выполнение long polling |
Stateless Question | stateless | Созданайте диалоги без хранения данных |
Throttler | transformer | Замедляйте вызовы API |
У нас также есть несколько сторонних плагинов! Вы можете найти их в навигационном меню в разделе Плагины > Сторонние. Обязательно посмотрите и их!
Типы плагинов в grammY
Все, что блестит, - золото, верно? Но это совсем другое золото! grammY может использовать преимущества двух типов плагинов: middleware плагины и плагины-трансформеры. Проще говоря, плагины в grammY возвращают либо middleware функцию, либо трансформирующую функцию. Давайте поговорим о различиях.
Тип I: Middleware плагины
Middleware — это функция, которая обрабатывает входящие данные в различных формах. Плагины Middleware — это плагины, которые подаются боту как… ну, вы догадались — как Middleware. Это означает, что вы устанавливаете их через bot
.
Тип II: Плагины-трансформеры
Трансформирующая функция — это противоположность middleware! Это функция, которая обрабатывает исходящие данные. Плагины-трансформеры — это плагины, которые подаются боту как… безумие! Вы снова угадали — трансформирующая функция. Это означает, что вы устанавливаете их через bot
.
Создавайте свои собственные плагины
Если вы хотите разработать плагин и поделиться им с другими пользователями (даже опубликовать на официальном сайте grammY), есть полезное руководство, с которым вы можете ознакомиться.
Идеи для новых плагинов
Мы собираем идеи для новых плагинов на Git