Size: a a a

2020 April 20

F

Fᴏʀᴅᴇɴ in aiogram [ru]
pre_process_update
источник

P#

PyCodeCat # from meo... in aiogram [ru]
О как
Отлично
источник

F

Fᴏʀᴅᴇɴ in aiogram [ru]
и че хочешь делай
источник

T

Tishka17 in aiogram [ru]
PyCodeCat # from meow import *
Так вот, к чему я
Модифицируешь прилетевший 'select1' на 'select:1' и пихаешь на обработку
зачем, если я могу очень легко сделать поддержку старого формата
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Tishka17
зачем, если я могу очень легко сделать поддержку старого формата
Чтобы было
select_cb = CallbackData('select', 'id')
и
select_cb.filter()
источник

T

Tishka17 in aiogram [ru]
PyCodeCat # from meow import *
Чтобы было
select_cb = CallbackData('select', 'id')
и
select_cb.filter()
select_cb = PrefixCallbackData('select')

select_cb.check
источник

P#

PyCodeCat # from meo... in aiogram [ru]
PyCodeCat # from meow import *
Чтобы было
select_cb = CallbackData('select', 'id')
и
select_cb.filter()
А в хендлере ещё и
some_id = int(callback_data['id'])
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Tishka17
select_cb = PrefixCallbackData('select')

select_cb.check
Понимаю, можно всегда и самому написать
источник

T

Tishka17 in aiogram [ru]
PyCodeCat # from meow import *
А в хендлере ещё и
some_id = int(callback_data['id'])
а вот это интересно
источник

T

Tishka17 in aiogram [ru]
я думал надо в хэндлере parse вызывать
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Tishka17
а вот это интересно
async def handler(query: CallbackQuery, callback_data: dict)
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Если из фильтра вернуть словарь, он будет пытаться передаваться в хендлеры по их спеке и kwargs
источник

T

Tishka17 in aiogram [ru]
о, прикольно
источник

T

Tishka17 in aiogram [ru]
не знал
источник

P#

PyCodeCat # from meo... in aiogram [ru]
PyCodeCat # from meow import *
Если из фильтра вернуть словарь, он будет пытаться передаваться в хендлеры по их спеке и kwargs
def has_args(m: Message):
 args = m.get_args()
 if args:
   return {'args': args.split(' ')}
 return False

async def handle_args(message: Message, args: List[str]): ...
источник

T

Tishka17 in aiogram [ru]
тогда все ещё проще
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Что-то я уже привык к типизации в питоне 🤔
источник

T

Tishka17 in aiogram [ru]
class PrefixCallbackData:
   def __init__(self, prefix: str):
       self.prefix = prefix

   def check(self, c: CallbackQuery):
       if c.data.startswith(self.prefix):
           return {'callback_data': c.data[len(self.prefix):]}

   def render(self, data: str) -> str:
       return f"{self.prefix}{data}"
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Tishka17
class PrefixCallbackData:
   def __init__(self, prefix: str):
       self.prefix = prefix

   def check(self, c: CallbackQuery):
       if c.data.startswith(self.prefix):
           return {'callback_data': c.data[len(self.prefix):]}

   def render(self, data: str) -> str:
       return f"{self.prefix}{data}"
PR time!
источник

S

SoHard 🎄 in aiogram [ru]
подскажите как сделать state но для всего чата, а не для отдельного пользователя?
источник