async def _send(self, image: BytesIO, *kb_list: InlineKeyboardMarkup): bot = Bot.get_current() user = User.get_current() call = CallbackQuery.get_current() message = Message.get_current() kb_list = [kb for kb in kb_list if kb] # clean from None if call: reply_to = call.message.message_id elif message: reply_to = message and message.message_id else: reply_to = None if len(kb_list) == 0: kb = None elif len(kb_list) == 1: kb = kb_list[0] else: kb = inline.merge_inline_keyboards(kb_list[0], kb_list[1]) await bot.send_photo(user.id, image, reply_markup=kb, reply_to_message_id=reply_to)
async def wrapper(*args, **kwargs): spec = inspect.getfullargspec(func) kwargs = {k: v for k, v in kwargs.items() if k in spec.args} user = User.get_current() msg = Message.get_current() attach_message_text and params.update({'text': msg.text}) posthog.capture(user.id, action, params, message_id=msg.message_id) return await func(*args, **kwargs)
async def on_err_not_stations_found(*_): msg = Message.get_current() await msg.reply(texts.no_stops_found) return True
async def on_err_api_not_responding(*_): msg = Message.get_current() await msg.reply(texts.api_not_responding) return True
async def on_err_station_not_exists(*_): msg = Message.get_current() await msg.reply(texts.invalid_station) return True