Added usage example of errors_handler

Optimized generation of default/inline keyboard
Customizing webhook path has become more flexible
Updated aiogram version to 2.7 (BotAPI 4.7)
This commit is contained in:
Forden
2020-04-07 01:44:05 +03:00
parent c3da772339
commit 2bbbee4651
11 changed files with 75 additions and 8 deletions

View File

@@ -0,0 +1,15 @@
from typing import List
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from . import utils
class DefaultConstructor:
@staticmethod
def _create_kb(actions: List[str], schema: List[int]) -> ReplyKeyboardMarkup:
btns = []
for a in actions:
btns.append(KeyboardButton(a))
kb = utils.misc.arrange_default_schema(btns, schema)
return kb

View File

@@ -0,0 +1 @@
from . import misc

View File

@@ -0,0 +1,17 @@
from typing import List
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
def arrange_default_schema(buttons: List[KeyboardButton], count: List[int]) -> ReplyKeyboardMarkup:
kb = ReplyKeyboardMarkup(resize_keyboard=True)
kb.row_width = max(count)
if sum(count) != len(buttons):
raise ValueError('Количество кнопок не совпадает со схемой')
tmplist = []
for a in count:
tmplist.append([])
for _ in range(a):
tmplist[-1].append(buttons.pop(0))
kb.keyboard = tmplist
return kb