mirror of
				https://github.com/LonamiWebs/Telethon.git
				synced 2025-10-31 07:57:38 +03:00 
			
		
		
		
	Fix async_generator's and missing awaits
This commit is contained in:
		
							parent
							
								
									8be6adeab4
								
							
						
					
					
						commit
						f86f52d960
					
				|  | @ -179,8 +179,9 @@ class ChatMethods(UserMethods): | |||
|         """ | ||||
|         total = [0] | ||||
|         kwargs['_total'] = total | ||||
|         participants = UserList(x async for x in | ||||
|                                 self.iter_participants(*args, **kwargs)) | ||||
|         participants = UserList() | ||||
|         async for x in self.iter_participants(*args, **kwargs): | ||||
|             participants.append(x) | ||||
|         participants.total = total[0] | ||||
|         return participants | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ from ..tl import types, functions, custom | |||
| 
 | ||||
| 
 | ||||
| class DialogMethods(UserMethods): | ||||
| 
 | ||||
|     # region Public methods | ||||
| 
 | ||||
|     @async_generator | ||||
|  | @ -103,10 +104,13 @@ class DialogMethods(UserMethods): | |||
|         """ | ||||
|         total = [0] | ||||
|         kwargs['_total'] = total | ||||
|         dialogs = UserList(x async for x in self.iter_dialogs(*args, **kwargs)) | ||||
|         dialogs = UserList() | ||||
|         async for x in self.iter_dialogs(*args, **kwargs): | ||||
|             dialogs.append(x) | ||||
|         dialogs.total = total[0] | ||||
|         return dialogs | ||||
| 
 | ||||
|     @async_generator | ||||
|     async def iter_drafts(self):  # TODO: Ability to provide a `filter` | ||||
|         """ | ||||
|         Iterator over all open draft messages. | ||||
|  | @ -124,6 +128,9 @@ class DialogMethods(UserMethods): | |||
|         """ | ||||
|         Same as :meth:`iter_drafts`, but returns a list instead. | ||||
|         """ | ||||
|         return list(x async for x in self.iter_drafts()) | ||||
|         result = [] | ||||
|         async for x in self.iter_drafts(): | ||||
|             result.append(x) | ||||
|         return result | ||||
| 
 | ||||
|     # endregion | ||||
|  |  | |||
|  | @ -244,7 +244,9 @@ class MessageMethods(UploadMethods, MessageParseMethods): | |||
|             else: | ||||
|                 kwargs['limit'] = 1 | ||||
| 
 | ||||
|         msgs = UserList(x async for x in self.iter_messages(*args, **kwargs)) | ||||
|         msgs = UserList() | ||||
|         async for x in self.iter_messages(*args, **kwargs): | ||||
|             msgs.append(x) | ||||
|         msgs.total = total[0] | ||||
|         if 'ids' in kwargs and not utils.is_list_like(kwargs['ids']): | ||||
|             return msgs[0] | ||||
|  |  | |||
|  | @ -269,24 +269,26 @@ class Message: | |||
|         return bool(self.original_message.reply_to_msg_id) | ||||
| 
 | ||||
|     @property | ||||
|     def buttons(self): | ||||
|     async def buttons(self): | ||||
|         """ | ||||
|         Returns a matrix (list of lists) containing all buttons of the message | ||||
|         as `telethon.tl.custom.messagebutton.MessageButton` instances. | ||||
|         """ | ||||
|         if self._buttons is None and self.original_message.reply_markup: | ||||
|             sender = await self.input_sender | ||||
|             chat = await self.input_chat | ||||
|             if isinstance(self.original_message.reply_markup, ( | ||||
|                     types.ReplyInlineMarkup, types.ReplyKeyboardMarkup)): | ||||
|                 self._buttons = [[ | ||||
|                     MessageButton(self._client, button, self.input_sender, | ||||
|                                   self.input_chat, self.original_message.id) | ||||
|                     MessageButton(self._client, button, sender, chat, | ||||
|                                   self.original_message.id) | ||||
|                     for button in row.buttons | ||||
|                 ] for row in self.original_message.reply_markup.rows] | ||||
|                 self._buttons_flat = [x for row in self._buttons for x in row] | ||||
|         return self._buttons | ||||
| 
 | ||||
|     @property | ||||
|     def button_count(self): | ||||
|     async def button_count(self): | ||||
|         """ | ||||
|         Returns the total button count. | ||||
|         """ | ||||
|  | @ -398,7 +400,7 @@ class Message: | |||
|             if not self.original_message.reply_to_msg_id: | ||||
|                 return None | ||||
|             self._reply_message = await self._client.get_messages( | ||||
|                 self.input_chat if self.is_channel else None, | ||||
|                 await self.input_chat if self.is_channel else None, | ||||
|                 ids=self.original_message.reply_to_msg_id | ||||
|             ) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user