├── .gitignore ├── .pre-commit-config.yaml ├── README.md ├── app.py ├── config.py ├── function.py ├── keyboards ├── __init__.py ├── common_keyboards.py └── inline_keyboards │ ├── __init__.py │ ├── actions_kb.py │ ├── info_kb.py │ └── shop_kb.py ├── main.py ├── middlewares ├── __init__.py ├── album_middleware.py └── rate_limit_middleware.py ├── pyproject.toml ├── requirements.txt ├── routers ├── __init__.py ├── admin_handlers.py ├── callback_handlers │ ├── __init__.py │ ├── actions_kb_callback_handlers.py │ ├── info_kb_callback_handlers.py │ └── shop_kb_callback_handlers.py ├── commands │ ├── __init__.py │ ├── base_commands.py │ └── user_commands.py ├── common.py ├── media_handlers.py └── survey │ ├── __init__.py │ ├── handlers.py │ ├── states.py │ └── survey_handlers │ ├── __init__.py │ ├── email_newsletter_handlers.py │ ├── full_name.py │ ├── select_sport_handlers.py │ └── user_email_handlers.py ├── set-webhook.py ├── utils ├── __init__.py └── async_timed_queue.py ├── uv.lock ├── validators ├── __init__.py └── email_validators.py ├── webhook.py └── yc_function_request_handler.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/README.md -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/app.py -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/config.py -------------------------------------------------------------------------------- /function.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/function.py -------------------------------------------------------------------------------- /keyboards/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /keyboards/common_keyboards.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/keyboards/common_keyboards.py -------------------------------------------------------------------------------- /keyboards/inline_keyboards/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /keyboards/inline_keyboards/actions_kb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/keyboards/inline_keyboards/actions_kb.py -------------------------------------------------------------------------------- /keyboards/inline_keyboards/info_kb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/keyboards/inline_keyboards/info_kb.py -------------------------------------------------------------------------------- /keyboards/inline_keyboards/shop_kb.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/keyboards/inline_keyboards/shop_kb.py -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/main.py -------------------------------------------------------------------------------- /middlewares/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /middlewares/album_middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/middlewares/album_middleware.py -------------------------------------------------------------------------------- /middlewares/rate_limit_middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/middlewares/rate_limit_middleware.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/requirements.txt -------------------------------------------------------------------------------- /routers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/__init__.py -------------------------------------------------------------------------------- /routers/admin_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/admin_handlers.py -------------------------------------------------------------------------------- /routers/callback_handlers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/callback_handlers/__init__.py -------------------------------------------------------------------------------- /routers/callback_handlers/actions_kb_callback_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/callback_handlers/actions_kb_callback_handlers.py -------------------------------------------------------------------------------- /routers/callback_handlers/info_kb_callback_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/callback_handlers/info_kb_callback_handlers.py -------------------------------------------------------------------------------- /routers/callback_handlers/shop_kb_callback_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/callback_handlers/shop_kb_callback_handlers.py -------------------------------------------------------------------------------- /routers/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/commands/__init__.py -------------------------------------------------------------------------------- /routers/commands/base_commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/commands/base_commands.py -------------------------------------------------------------------------------- /routers/commands/user_commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/commands/user_commands.py -------------------------------------------------------------------------------- /routers/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/common.py -------------------------------------------------------------------------------- /routers/media_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/media_handlers.py -------------------------------------------------------------------------------- /routers/survey/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/__init__.py -------------------------------------------------------------------------------- /routers/survey/handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/handlers.py -------------------------------------------------------------------------------- /routers/survey/states.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/states.py -------------------------------------------------------------------------------- /routers/survey/survey_handlers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /routers/survey/survey_handlers/email_newsletter_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/survey_handlers/email_newsletter_handlers.py -------------------------------------------------------------------------------- /routers/survey/survey_handlers/full_name.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/survey_handlers/full_name.py -------------------------------------------------------------------------------- /routers/survey/survey_handlers/select_sport_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/survey_handlers/select_sport_handlers.py -------------------------------------------------------------------------------- /routers/survey/survey_handlers/user_email_handlers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/routers/survey/survey_handlers/user_email_handlers.py -------------------------------------------------------------------------------- /set-webhook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/set-webhook.py -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /utils/async_timed_queue.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/utils/async_timed_queue.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/uv.lock -------------------------------------------------------------------------------- /validators/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /validators/email_validators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/validators/email_validators.py -------------------------------------------------------------------------------- /webhook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/webhook.py -------------------------------------------------------------------------------- /yc_function_request_handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mahenzon/demo-tg-bot/HEAD/yc_function_request_handler.py --------------------------------------------------------------------------------