# Usefulgram

### Как скачать? 
Всё просто - достаточно ввести `pip install usefulgram`

### Немного истории 
aiogram - прекрасный фреймворк. Однако при работе с ним я столкнулся с тем, 
что переношу многие функции и классы из проекта в проект. Сначала, 
для удобной транспортировки были созданы общие классы, затем это перосло
в общую папку, а теперь - в отдельный проект. Надеюсь, что данная
небольшая надстройка станет полезным инструментом не только мне, но  и вам

### Какие изменения?
В целом, usefulgram нельзя расценивать как что-то независимое. Это
надстройка, собирающая в себя множество маленьких, но полезных утилит.
Основные измения:
- lazyediting - класс для удобного изменения сообщений в callback хендлерах.
Настолько удобен, что я считаю его главной киллер-фичей
- Builder, Row, Button и Reply аналоги - классы для представления клавиатуры 
в массивно-подобном виде
- BasePydanticFilter - Базовый класс, несколько развитая версия
CallbackFactory, способная на type hints и несколько более обширный список
типов. Незаменим при использовании вместе с плагином для pydantic подсказок
в вашу IDE
- TrottlingMiddleware - Класс, позволяющий не допустить спам. Немного 
изменённая версия [данного кода](https://github.com/wakaree/simple_echo_bot/blob/main/middlewares/throttling.py)
- StackerMiddleware - Класс, добавляющий все эти классы в функции
- И многое, многое другое!

#### Пример использования:
На данный момент существует единственный, но при этом почти полный пример 
использования. Найти его можно в **examples -> fully_example**

#### Документация: 
_В разработке и скоро будет доступна_

### Roadmap
- Добавить больше примеров использования
- Перевести все тексты в библиотеке на английский
- Добавить документацию
- Добавить больше комментариев в код
- Улучшить код ✔️ - 80% библиотеки было переписано