Add spotify search (only search), default menu
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
from .private_button import PrivateButtonMiddleware
|
||||
from .save_chosen import SaveChosenMiddleware
|
||||
|
||||
19
bot/middlewares/private_button.py
Normal file
19
bot/middlewares/private_button.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from aiogram.dispatcher.middlewares.base import BaseMiddleware
|
||||
from aiogram.types import CallbackQuery
|
||||
|
||||
from typing import Any, Awaitable, Callable, Dict
|
||||
|
||||
from bot.modules.database import db
|
||||
|
||||
|
||||
class PrivateButtonMiddleware(BaseMiddleware):
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[CallbackQuery, Dict[str, Any]], Awaitable[Any]],
|
||||
event: CallbackQuery,
|
||||
data: Dict[str, Any],
|
||||
):
|
||||
if event.from_user.id == db.inline[event.inline_message_id].from_user.id:
|
||||
return await handler(event, data)
|
||||
else:
|
||||
await event.answer('This button is not for you')
|
||||
46
bot/middlewares/save_chosen.py
Normal file
46
bot/middlewares/save_chosen.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from aiogram.dispatcher.middlewares.base import BaseMiddleware
|
||||
from aiogram.types import ChosenInlineResult
|
||||
|
||||
from typing import Any, Awaitable, Callable, Dict
|
||||
from dataclasses import dataclass
|
||||
|
||||
from bot.modules.database import db
|
||||
|
||||
|
||||
@dataclass
|
||||
class SavedUser:
|
||||
id: int
|
||||
first_name: str
|
||||
last_name: str | None
|
||||
username: str | None
|
||||
language_code: str | None
|
||||
|
||||
|
||||
@dataclass
|
||||
class SavedResult:
|
||||
result_id: str
|
||||
from_user: SavedUser
|
||||
query: str
|
||||
inline_message_id: str
|
||||
|
||||
|
||||
class SaveChosenMiddleware(BaseMiddleware):
|
||||
async def __call__(
|
||||
self,
|
||||
handler: Callable[[ChosenInlineResult, Dict[str, Any]], Awaitable[Any]],
|
||||
event: ChosenInlineResult,
|
||||
data: Dict[str, Any],
|
||||
):
|
||||
db.inline[event.inline_message_id] = SavedResult(
|
||||
result_id=event.result_id,
|
||||
from_user=SavedUser(
|
||||
id=event.from_user.id,
|
||||
first_name=event.from_user.first_name,
|
||||
last_name=event.from_user.last_name,
|
||||
username=event.from_user.username,
|
||||
language_code=event.from_user.language_code
|
||||
),
|
||||
query=event.query,
|
||||
inline_message_id=event.inline_message_id
|
||||
)
|
||||
return await handler(event, data)
|
||||
Reference in New Issue
Block a user