feat: /new_creative tg_bot
This commit is contained in:
@@ -3,4 +3,10 @@ from aiogram import Router
|
||||
telegram_callback_router = Router()
|
||||
|
||||
# Import handlers to register them
|
||||
from . import chat_join_request, chat_member_updated, my_chat_member, start_with_login # noqa: E402, F401
|
||||
from . import ( # noqa: E402, F401
|
||||
chat_join_request,
|
||||
chat_member_updated,
|
||||
creative_commands,
|
||||
my_chat_member,
|
||||
start_with_login,
|
||||
)
|
||||
|
||||
51
src/controller/telegram_callback/creative_commands.py
Normal file
51
src/controller/telegram_callback/creative_commands.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import logging
|
||||
|
||||
from aiogram import F
|
||||
from aiogram.filters import Command
|
||||
from aiogram.types import CallbackQuery, Message
|
||||
|
||||
from src import dependencies
|
||||
from src.controller.telegram_callback import telegram_callback_router
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@telegram_callback_router.message(Command('new_creative'))
|
||||
async def cmd_new_creative(message: Message) -> None:
|
||||
if not message.from_user:
|
||||
log.error('Failed to get user data from message')
|
||||
return
|
||||
|
||||
usecase = dependencies.get_usecase()
|
||||
await usecase.start_creative_creation(telegram_id=message.from_user.id, chat_id=message.chat.id)
|
||||
|
||||
|
||||
@telegram_callback_router.callback_query(F.data.startswith('cc_ch:'))
|
||||
async def callback_creative_channel(callback: CallbackQuery) -> None:
|
||||
if not callback.from_user or not callback.message or not callback.data:
|
||||
log.error('Failed to get required data from callback query')
|
||||
return
|
||||
|
||||
usecase = dependencies.get_usecase()
|
||||
await usecase.handle_creative_callback(
|
||||
telegram_id=callback.from_user.id,
|
||||
chat_id=callback.message.chat.id,
|
||||
callback_data=callback.data,
|
||||
message_id=callback.message.message_id,
|
||||
)
|
||||
|
||||
await callback.answer()
|
||||
|
||||
|
||||
@telegram_callback_router.message(F.text & ~F.text.startswith('/'))
|
||||
async def handle_text_message(message: Message) -> None:
|
||||
if not message.from_user or not message.text:
|
||||
return
|
||||
|
||||
usecase = dependencies.get_usecase()
|
||||
await usecase.handle_creative_text_input(
|
||||
telegram_id=message.from_user.id,
|
||||
chat_id=message.chat.id,
|
||||
text=message.text,
|
||||
text_html=message.html_text,
|
||||
)
|
||||
@@ -28,3 +28,14 @@ async def cmd_start_with_deeplink(message: Message) -> None:
|
||||
)
|
||||
|
||||
await dependencies.get_usecase().telegram_login(input=input)
|
||||
|
||||
|
||||
@telegram_callback_router.message(CommandStart())
|
||||
async def cmd_start(message: Message) -> None:
|
||||
"""Handle /start command without deep link."""
|
||||
if not message.from_user:
|
||||
log.error('Failed to get user data from message')
|
||||
return
|
||||
|
||||
usecase = dependencies.get_usecase()
|
||||
await usecase.telegram_start(telegram_id=message.from_user.id, chat_id=message.chat.id)
|
||||
|
||||
Reference in New Issue
Block a user