1
0
mirror of https://github.com/eternnoir/pyTelegramBotAPI.git synced 2023-08-10 21:12:57 +03:00

Middlewares, new file, and examples

This commit is contained in:
_run
2021-11-27 23:41:39 +05:00
parent 6770011dd7
commit a9b422783f
15 changed files with 3178 additions and 2831 deletions

File diff suppressed because it is too large Load Diff

2869
telebot/async_telebot.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -144,7 +144,8 @@ class IsAdminFilter(SimpleCustomFilter):
self._bot = bot
async def check(self, message):
return self._bot.get_chat_member(message.chat.id, message.from_user.id).status in ['creator', 'administrator']
result = await self._bot.get_chat_member(message.chat.id, message.from_user.id)
return result.status in ['creator', 'administrator']
class StateFilter(AdvancedCustomFilter):
"""
@ -158,10 +159,11 @@ class StateFilter(AdvancedCustomFilter):
key = 'state'
async def check(self, message, text):
if await self.bot.current_states.current_state(message.from_user.id) is False: return False
result = await self.bot.current_states.current_state(message.from_user.id)
if result is False: return False
elif text == '*': return True
elif type(text) is list: return await self.bot.current_states.current_state(message.from_user.id) in text
return await self.bot.current_states.current_state(message.from_user.id) == text
elif type(text) is list: return result in text
return result == text
class IsDigitFilter(SimpleCustomFilter):
"""

View File

@ -94,11 +94,11 @@ class StateFile:
async def delete_state(self, chat_id):
"""Delete a state"""
states_data = await self._read_data()
states_data = self._read_data()
states_data.pop(chat_id)
await self._save_data(states_data)
async def _read_data(self):
def _read_data(self):
"""
Read the data from file.
"""
@ -107,7 +107,7 @@ class StateFile:
file.close()
return states_data
async def _create_dir(self):
def _create_dir(self):
"""
Create directory .save-handlers.
"""
@ -152,7 +152,7 @@ class StateFile:
"""
await self.delete_state(chat_id)
async def retrieve_data(self, chat_id):
def retrieve_data(self, chat_id):
"""
Save input text.
@ -195,7 +195,7 @@ class StateFileContext:
return self.data
async def __aexit__(self, exc_type, exc_val, exc_tb):
old_data = await self.obj._read_data()
old_data = self.obj._read_data()
for i in self.data:
old_data[self.chat_id]['data'][i] = self.data.get(i)
await self.obj._save_data(old_data)