mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-08 17:13:56 +00:00
Merge branch 'dev-1.x' into patch-1
This commit is contained in:
commit
c73975a2df
8 changed files with 25 additions and 34 deletions
|
|
@ -10,5 +10,5 @@ except ImportError:
|
|||
else:
|
||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||
|
||||
__version__ = '1.3.2'
|
||||
__version__ = '1.3.3.dev1'
|
||||
__api_version__ = '3.6'
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
"""
|
||||
|
|
@ -46,15 +43,12 @@ 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:
|
||||
"""
|
||||
This property requires `Babel <https://pypi.python.org/pypi/Babel>`_ module
|
||||
Get user's locale
|
||||
|
||||
: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'):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ def get_users():
|
|||
yield from (61043901, 78238238, 78378343, 98765431, 12345678)
|
||||
|
||||
|
||||
async def send_message(user_id: int, text: str) -> bool:
|
||||
async def send_message(user_id: int, text: str, disable_notification: bool = False) -> bool:
|
||||
"""
|
||||
Safe messages sender
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ async def send_message(user_id: int, text: str) -> bool:
|
|||
:return:
|
||||
"""
|
||||
try:
|
||||
await bot.send_message(user_id, '<b>Hello, World!</b>')
|
||||
await bot.send_message(user_id, text, disable_notification=disable_notification)
|
||||
except exceptions.BotBlocked:
|
||||
log.error(f"Target [ID:{user_id}]: blocked by user")
|
||||
except exceptions.ChatNotFound:
|
||||
|
|
@ -41,6 +41,8 @@ async def send_message(user_id: int, text: str) -> bool:
|
|||
log.error(f"Target [ID:{user_id}]: Flood limit is exceeded. Sleep {e.timeout} seconds.")
|
||||
await asyncio.sleep(e.timeout)
|
||||
return await send_message(user_id, text) # Recursive call
|
||||
except exceptions.UserDeactivated:
|
||||
log.error(f"Target [ID:{user_id}]: user is deactivated")
|
||||
except exceptions.TelegramAPIError:
|
||||
log.exception(f"Target [ID:{user_id}]: failed")
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue