mirror of
				https://github.com/Rapptz/discord.py.git
				synced 2025-10-24 18:13:00 +00:00 
			
		
		
		
	terminate iterators immediately once out of data
if len(data) < 100, either limit was less than 100, or we ran out of results, in both cases, we should terminate the lookup. This fixes, e.g., hangs in audit_logs(limit=999999), and will reduce the number of fetch calls for any case where limit is greater than the number of results. (Prior, would just kinda loop calling audit-logs)
This commit is contained in:
		| @@ -306,7 +306,7 @@ class HistoryIterator(_AsyncIterator): | |||||||
|  |  | ||||||
|         if self._get_retrieve(): |         if self._get_retrieve(): | ||||||
|             data = await self._retrieve_messages(self.retrieve) |             data = await self._retrieve_messages(self.retrieve) | ||||||
|             if self.limit is None and len(data) < 100: |             if len(data) < 100: | ||||||
|                 self.limit = 0 # terminate the infinite loop |                 self.limit = 0 # terminate the infinite loop | ||||||
|  |  | ||||||
|             if self.reverse: |             if self.reverse: | ||||||
| @@ -439,7 +439,7 @@ class AuditLogIterator(_AsyncIterator): | |||||||
|  |  | ||||||
|         if self._get_retrieve(): |         if self._get_retrieve(): | ||||||
|             users, data = await self._strategy(self.retrieve) |             users, data = await self._strategy(self.retrieve) | ||||||
|             if self.limit is None and len(data) < 100: |             if len(data) < 100: | ||||||
|                 self.limit = 0 # terminate the infinite loop |                 self.limit = 0 # terminate the infinite loop | ||||||
|  |  | ||||||
|             if self.reverse: |             if self.reverse: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user