From 545d470e02c52f078d4171d75684db3c17a7fc66 Mon Sep 17 00:00:00 2001 From: gurland Date: Sat, 2 Jun 2018 00:54:23 +0300 Subject: [PATCH 1/7] Convert tabs to spaces --- docs/Makefile | 4 ++-- docs/source/quick_start.rst | 40 ++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 4e50ed99..d4bd90d4 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -10,11 +10,11 @@ BUILDDIR = build # Put it first so that "make" without argument is like "make help". help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/source/quick_start.rst b/docs/source/quick_start.rst index 9f35c45a..6ce619be 100644 --- a/docs/source/quick_start.rst +++ b/docs/source/quick_start.rst @@ -8,9 +8,9 @@ At first you have to import all necessary modules .. code-block:: python3 - from aiogram import Bot, types - from aiogram.dispatcher import Dispatcher - from aiogram.utils import executor + from aiogram import Bot, types + from aiogram.dispatcher import Dispatcher + from aiogram.utils import executor Then you have to initialize bot and dispatcher instances. Bot token you can get from `@BotFather `_ @@ -18,39 +18,39 @@ Bot token you can get from `@BotFather `_ .. code-block:: python3 - bot = Bot(token='BOT TOKEN HERE') - dp = Dispatcher(bot) + bot = Bot(token='BOT TOKEN HERE') + dp = Dispatcher(bot) Next step: interaction with bots starts with one command. Register your first command handler: .. code-block:: python3 - @dp.message_handler(commands=['start', 'help']) - async def send_welcome(message: types.Message): - await message.reply("Hi!\nI'm EchoBot!\nPowered by aiogram.") + @dp.message_handler(commands=['start', 'help']) + async def send_welcome(message: types.Message): + await message.reply("Hi!\nI'm EchoBot!\nPowered by aiogram.") Last step: run long polling. .. code-block:: python3 - if __name__ == '__main__': - executor.start_polling(dp) + if __name__ == '__main__': + executor.start_polling(dp) Summary ------- .. code-block:: python3 - from aiogram import Bot, types - from aiogram.dispatcher import Dispatcher - from aiogram.utils import executor + from aiogram import Bot, types + from aiogram.dispatcher import Dispatcher + from aiogram.utils import executor - bot = Bot(token='BOT TOKEN HERE') - dp = Dispatcher(bot) + 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.") + @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) + if __name__ == '__main__': + executor.start_polling(dp) From 99bb5a9fef9f23733f87cab805b194c2e958d7f1 Mon Sep 17 00:00:00 2001 From: Suren Khorenyan Date: Thu, 7 Jun 2018 23:38:23 +0300 Subject: [PATCH 2/7] Improve check in ExceptionsFilter --- aiogram/dispatcher/filters.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/aiogram/dispatcher/filters.py b/aiogram/dispatcher/filters.py index 96ee47b0..fb3f04a0 100644 --- a/aiogram/dispatcher/filters.py +++ b/aiogram/dispatcher/filters.py @@ -238,12 +238,7 @@ class ExceptionsFilter(Filter): self.exception = exception def check(self, dispatcher, update, exception): - try: - raise exception - except self.exception: - return True - except: - return False + return isinstance(exception, self.exception) def generate_default_filters(dispatcher, *args, **kwargs): From b7a67cd5220cd7c2156dfa945ddde69b39603a4d Mon Sep 17 00:00:00 2001 From: Suren Khorenyan Date: Sun, 10 Jun 2018 13:40:33 +0300 Subject: [PATCH 3/7] Babel is in requirements now --- aiogram/types/user.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/aiogram/types/user.py b/aiogram/types/user.py index d27f2f87..2143f06c 100644 --- a/aiogram/types/user.py +++ b/aiogram/types/user.py @@ -1,12 +1,9 @@ +import babel + from . import base from . import fields from ..utils import markdown -try: - import babel -except ImportError: - babel = None - class User(base.TelegramObject): """ @@ -51,10 +48,7 @@ class User(base.TelegramObject): This property requires `Babel `_ module :return: :class:`babel.core.Locale` - :raise: ImportError: when babel is not installed. """ - if not babel: - raise ImportError('Babel is not installed!') if not self.language_code: return None if not hasattr(self, '_locale'): From 7e601d1c8d018cbd3444e999a58ec928e888e63a Mon Sep 17 00:00:00 2001 From: Suren Khorenyan Date: Mon, 11 Jun 2018 00:28:14 +0300 Subject: [PATCH 4/7] Update docstring for the user class --- aiogram/types/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiogram/types/user.py b/aiogram/types/user.py index 2143f06c..42157039 100644 --- a/aiogram/types/user.py +++ b/aiogram/types/user.py @@ -45,7 +45,7 @@ class User(base.TelegramObject): @property def locale(self) -> 'babel.core.Locale' or None: """ - This property requires `Babel `_ module + Get user's locale :return: :class:`babel.core.Locale` """ From 3adba29c279aef3a98c2f43d236516e60d2b40cd Mon Sep 17 00:00:00 2001 From: Suren Khorenyan Date: Mon, 11 Jun 2018 00:31:26 +0300 Subject: [PATCH 5/7] Fix return typing --- aiogram/types/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiogram/types/user.py b/aiogram/types/user.py index 42157039..c4c64844 100644 --- a/aiogram/types/user.py +++ b/aiogram/types/user.py @@ -43,7 +43,7 @@ class User(base.TelegramObject): return self.full_name @property - def locale(self) -> 'babel.core.Locale' or None: + def locale(self) -> babel.core.Locale or None: """ Get user's locale From dd0fb98376aa55a3b379f052addfd03d249ce03e Mon Sep 17 00:00:00 2001 From: Kolay Date: Fri, 15 Jun 2018 00:32:55 +0300 Subject: [PATCH 6/7] must be use round --- aiogram/utils/payload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiogram/utils/payload.py b/aiogram/utils/payload.py index 277573c9..dac43492 100644 --- a/aiogram/utils/payload.py +++ b/aiogram/utils/payload.py @@ -54,5 +54,5 @@ def prepare_arg(value): now = datetime.datetime.now() return int((now + value).timestamp()) elif isinstance(value, datetime.datetime): - return int(value.timestamp()) + return round(value.timestamp()) return value From fee449a233ef3d6c1452ebef9a9d259fd81725a4 Mon Sep 17 00:00:00 2001 From: Kolay Date: Fri, 15 Jun 2018 00:35:46 +0300 Subject: [PATCH 7/7] replaced int to datetime --- aiogram/types/message.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aiogram/types/message.py b/aiogram/types/message.py index 61f6188f..459091ee 100644 --- a/aiogram/types/message.py +++ b/aiogram/types/message.py @@ -37,9 +37,9 @@ class Message(base.TelegramObject): forward_from_chat: Chat = fields.Field(base=Chat) forward_from_message_id: base.Integer = fields.Field() forward_signature: base.String = fields.Field() - forward_date: base.Integer = fields.Field() + forward_date: datetime.datetime = fields.DateTimeField() reply_to_message: 'Message' = fields.Field(base='Message') - edit_date: base.Integer = fields.Field() + edit_date: datetime.datetime = fields.DateTimeField() media_group_id: base.String = fields.Field() author_signature: base.String = fields.Field() text: base.String = fields.Field()