mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-10 17:53:17 +00:00
Merge branch 'master' into dev-1.x
# Conflicts: # aiogram/__init__.py
This commit is contained in:
commit
ee87cb5e07
4 changed files with 53 additions and 4 deletions
|
|
@ -4,7 +4,6 @@ from typing import TypeVar
|
|||
|
||||
from .fields import BaseField
|
||||
from ..utils import json
|
||||
from ..utils.context import get_value
|
||||
|
||||
PROPS_ATTR_NAME = '_props'
|
||||
VALUES_ATTR_NAME = '_values'
|
||||
|
|
@ -187,15 +186,61 @@ class TelegramObject(metaclass=MetaTelegramObject):
|
|||
return self.as_json()
|
||||
|
||||
def __getitem__(self, item):
|
||||
"""
|
||||
Item getter (by key)
|
||||
|
||||
:param item:
|
||||
:return:
|
||||
"""
|
||||
if item in self.props:
|
||||
return self.props[item].get_value(self)
|
||||
raise KeyError(item)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
"""
|
||||
Item setter (by key)
|
||||
|
||||
:param key:
|
||||
:param value:
|
||||
:return:
|
||||
"""
|
||||
if key in self.props:
|
||||
return self.props[key].set_value(self, value, self.conf.get('parent', None))
|
||||
raise KeyError(key)
|
||||
|
||||
def __contains__(self, item):
|
||||
"""
|
||||
Check key contains in that object
|
||||
|
||||
:param item:
|
||||
:return:
|
||||
"""
|
||||
self.clean()
|
||||
return item in self.values
|
||||
|
||||
def __iter__(self):
|
||||
"""
|
||||
Iterate over items
|
||||
|
||||
:return:
|
||||
"""
|
||||
for item in self.to_python().items():
|
||||
yield item
|
||||
|
||||
def iter_keys(self):
|
||||
"""
|
||||
Iterate over keys
|
||||
|
||||
:return:
|
||||
"""
|
||||
for key, _ in self:
|
||||
yield key
|
||||
|
||||
def iter_values(self):
|
||||
"""
|
||||
Iterate over values
|
||||
|
||||
:return:
|
||||
"""
|
||||
for _, value in self:
|
||||
yield value
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class InlineKeyboardMarkup(base.TelegramObject):
|
|||
"""
|
||||
btn_array = []
|
||||
for button in args:
|
||||
btn_array.append(button.to_json())
|
||||
btn_array.append(button.to_python())
|
||||
self.inline_keyboard.append(btn_array)
|
||||
return self
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
|||
elif isinstance(button, bytes):
|
||||
row.append({'text': button.decode('utf-8')})
|
||||
else:
|
||||
row.append(button.to_json())
|
||||
row.append(button.to_python())
|
||||
if i % self.row_width == 0:
|
||||
self.keyboard.append(row)
|
||||
row = []
|
||||
|
|
@ -55,7 +55,7 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
|||
if isinstance(button, str):
|
||||
btn_array.append({'text': button})
|
||||
else:
|
||||
btn_array.append(button.to_json())
|
||||
btn_array.append(button.to_python())
|
||||
self.keyboard.append(btn_array)
|
||||
return self
|
||||
|
||||
|
|
|
|||
|
|
@ -48,5 +48,9 @@ Summary
|
|||
bot = Bot(token='BOT TOKEN HERE')
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
@dp.message_handler(commands=['start', 'help'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Hi!\nI'm EchoBot!\nPowered by aiogram.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
executor.start_polling(dp)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue