mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 01:54:53 +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 .fields import BaseField
|
||||||
from ..utils import json
|
from ..utils import json
|
||||||
from ..utils.context import get_value
|
|
||||||
|
|
||||||
PROPS_ATTR_NAME = '_props'
|
PROPS_ATTR_NAME = '_props'
|
||||||
VALUES_ATTR_NAME = '_values'
|
VALUES_ATTR_NAME = '_values'
|
||||||
|
|
@ -187,15 +186,61 @@ class TelegramObject(metaclass=MetaTelegramObject):
|
||||||
return self.as_json()
|
return self.as_json()
|
||||||
|
|
||||||
def __getitem__(self, item):
|
def __getitem__(self, item):
|
||||||
|
"""
|
||||||
|
Item getter (by key)
|
||||||
|
|
||||||
|
:param item:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
if item in self.props:
|
if item in self.props:
|
||||||
return self.props[item].get_value(self)
|
return self.props[item].get_value(self)
|
||||||
raise KeyError(item)
|
raise KeyError(item)
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
|
"""
|
||||||
|
Item setter (by key)
|
||||||
|
|
||||||
|
:param key:
|
||||||
|
:param value:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
if key in self.props:
|
if key in self.props:
|
||||||
return self.props[key].set_value(self, value, self.conf.get('parent', None))
|
return self.props[key].set_value(self, value, self.conf.get('parent', None))
|
||||||
raise KeyError(key)
|
raise KeyError(key)
|
||||||
|
|
||||||
def __contains__(self, item):
|
def __contains__(self, item):
|
||||||
|
"""
|
||||||
|
Check key contains in that object
|
||||||
|
|
||||||
|
:param item:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
self.clean()
|
self.clean()
|
||||||
return item in self.values
|
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 = []
|
btn_array = []
|
||||||
for button in args:
|
for button in args:
|
||||||
btn_array.append(button.to_json())
|
btn_array.append(button.to_python())
|
||||||
self.inline_keyboard.append(btn_array)
|
self.inline_keyboard.append(btn_array)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
||||||
elif isinstance(button, bytes):
|
elif isinstance(button, bytes):
|
||||||
row.append({'text': button.decode('utf-8')})
|
row.append({'text': button.decode('utf-8')})
|
||||||
else:
|
else:
|
||||||
row.append(button.to_json())
|
row.append(button.to_python())
|
||||||
if i % self.row_width == 0:
|
if i % self.row_width == 0:
|
||||||
self.keyboard.append(row)
|
self.keyboard.append(row)
|
||||||
row = []
|
row = []
|
||||||
|
|
@ -55,7 +55,7 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
||||||
if isinstance(button, str):
|
if isinstance(button, str):
|
||||||
btn_array.append({'text': button})
|
btn_array.append({'text': button})
|
||||||
else:
|
else:
|
||||||
btn_array.append(button.to_json())
|
btn_array.append(button.to_python())
|
||||||
self.keyboard.append(btn_array)
|
self.keyboard.append(btn_array)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,5 +48,9 @@ Summary
|
||||||
bot = Bot(token='BOT TOKEN HERE')
|
bot = Bot(token='BOT TOKEN HERE')
|
||||||
dp = Dispatcher(bot)
|
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__':
|
if __name__ == '__main__':
|
||||||
executor.start_polling(dp)
|
executor.start_polling(dp)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue