@@ -25,6 +25,8 @@ class HostResult(Model):
2525
2626
2727class Client :
28+ MAX_RESULTS_PER_PAGE = 20
29+
2830 def __init__ (
2931 self ,
3032 api_key : Optional [str ] = None ,
@@ -53,27 +55,31 @@ def __get(self, url, params):
5355 else :
5456 return ErrorResponse (response = r , response_json = r .json ())
5557
56- def get (self , scope : Scope , queries : Optional [List [Query ]] = None ):
58+ def get (self , scope : Scope , queries : Optional [List [Query ]] = None , page : int = 0 ):
59+ if page < 0 :
60+ raise ValueError ("Page argument must be a positive integer" )
5761 if queries is None or len (queries ) == 0 :
5862 serialized_query = EmptyQuery ().serialize ()
5963 else :
6064 serialized_query = [q .serialize () for q in queries ]
6165 serialized_query = " " .join (serialized_query )
6266 serialized_query = "%s" % serialized_query
6367 url = "%s/search" % self .base_url
64- r = self .__get (url = url , params = {"scope" : scope .value , "q" : serialized_query })
68+ r = self .__get (
69+ url = url , params = {"scope" : scope .value , "q" : serialized_query , "page" : page }
70+ )
6571 return r
6672
67- def get_service (self , queries : Optional [List [Query ]] = None ):
68- r = self .get (Scope .SERVICE , queries = queries )
73+ def get_service (self , queries : Optional [List [Query ]] = None , page : int = 0 ):
74+ r = self .get (Scope .SERVICE , queries = queries , page = page )
6975 if r .is_success ():
7076 r .response_json = [
7177 l9format .L9Event .from_dict (res ) for res in r .response_json
7278 ]
7379 return r
7480
75- def get_leak (self , queries : Optional [List [Query ]] = None ):
76- r = self .get (Scope .LEAK , queries = queries )
81+ def get_leak (self , queries : Optional [List [Query ]] = None , page : int = 0 ):
82+ r = self .get (Scope .LEAK , queries = queries , page = page )
7783 if r .is_success ():
7884 r .response_json = [
7985 l9format .L9Event .from_dict (res ) for res in r .response_json
0 commit comments