@@ -30,7 +30,7 @@ def __init__(self, vk):
3030 self .vk = vk
3131
3232 def get_all_iter (self , method , max_count , values = None , key = 'items' ,
33- limit = None ):
33+ limit = None , dt_limit = None ):
3434 """ Получить все элементы.
3535 Работает в методах, где в ответе есть count и items или users.
3636 За один запрос получает max_count * 25 элементов
@@ -51,6 +51,9 @@ def get_all_iter(self, method, max_count, values=None, key='items',
5151 :param limit: ограничение на кол-во получаемых элементов,
5252 но может прийти больше
5353 :type limit: int
54+
55+ :param dt_limit: ограничение на время публикации элемента
56+ :type dt_limit: int
5457 """
5558
5659 values = values .copy () if values else {}
@@ -80,7 +83,11 @@ def get_all_iter(self, method, max_count, values=None, key='items',
8083 if limit and items_count >= limit :
8184 break
8285
83- def get_all (self , method , max_count , values = None , key = 'items' , limit = None ):
86+ if dt_limit and items [len (items ) - 1 ]['date' ] <= dt_limit :
87+ break
88+
89+ def get_all (self , method , max_count , values = None , key = 'items' , limit = None ,
90+ dt_limit = None ):
8491 """ Использовать только если нужно загрузить все объекты в память.
8592
8693 Eсли вы можете обрабатывать объекты по частям, то лучше
@@ -90,7 +97,8 @@ def get_all(self, method, max_count, values=None, key='items', limit=None):
9097 все данные в память
9198 """
9299
93- items = list (self .get_all_iter (method , max_count , values , key , limit ))
100+ items = list (self .get_all_iter (method , max_count , values , key , limit ,
101+ dt_limit ))
94102
95103 return {'count' : len (items ), key : items }
96104
0 commit comments