@@ -25,9 +25,11 @@ class HostResult(Model):
2525
2626
2727class Client :
28- def __init__ (self ,
29- api_key : Optional [str ] = None ,
30- base_url : Optional [str ] = "https://leakix.net" ):
28+ def __init__ (
29+ self ,
30+ api_key : Optional [str ] = None ,
31+ base_url : Optional [str ] = "https://leakix.net" ,
32+ ):
3133 self .api_key = api_key
3234 self .base_url = base_url
3335 self .headers = {
@@ -37,17 +39,10 @@ def __init__(self,
3739 if api_key :
3840 self .headers ["api-key" ] = api_key
3941
40- def get (self , scope : Scope , queries : Optional [List [Query ]] = None ):
41- if queries is None or len (queries ) == 0 :
42- serialized_query = EmptyQuery ().serialize ()
43- else :
44- serialized_query = [q .serialize () for q in queries ]
45- serialized_query = " " .join (serialized_query )
46- serialized_query = "%s" % serialized_query
47- url = "%s/search" % self .base_url
42+ def __get (self , url , params ):
4843 r = requests .get (
4944 url ,
50- params = { "scope" : scope . value , "q" : serialized_query } ,
45+ params = params ,
5146 headers = self .headers ,
5247 )
5348 if r .status_code == 200 :
@@ -56,7 +51,18 @@ def get(self, scope: Scope, queries: Optional[List[Query]] = None):
5651 elif r .status_code == 429 :
5752 return RateLimitResponse (response = r )
5853 else :
59- return ErrorResponse (response = r , response_json = response .json ())
54+ return ErrorResponse (response = r , response_json = r .json ())
55+
56+ def get (self , scope : Scope , queries : Optional [List [Query ]] = None ):
57+ if queries is None or len (queries ) == 0 :
58+ serialized_query = EmptyQuery ().serialize ()
59+ else :
60+ serialized_query = [q .serialize () for q in queries ]
61+ serialized_query = " " .join (serialized_query )
62+ serialized_query = "%s" % serialized_query
63+ url = "%s/search" % self .base_url
64+ r = self .__get (url = url , params = {"scope" : scope .value , "q" : serialized_query })
65+ return r
6066
6167 def get_service (self , queries : Optional [List [Query ]] = None ):
6268 r = self .get (Scope .SERVICE , queries = queries )
@@ -76,17 +82,20 @@ def get_leak(self, queries: Optional[List[Query]] = None):
7682
7783 def get_host (self , ipv4 : str ):
7884 url = "%s/host/%s" % (self .base_url , ipv4 )
79- r = requests . get (url , headers = self . headers )
80- if r .status_code == 200 :
85+ r = self . __get (url , params = None )
86+ if r .is_success () :
8187 response_json = r .json ()
8288 formatted_result = HostResult .from_dict (response_json )
8389 response_json = {
8490 "services" : formatted_result .Services ,
8591 "leaks" : formatted_result .Leaks ,
8692 }
87- return SuccessResponse (response = r , response_json = response_json )
88- elif r .status_code == 429 :
89- return RateLimitResponse (response = r )
90- else :
91- response_json = r .json ()
92- return ErrorResponse (response = r , response_json = response_json )
93+ r .response_json = response_json
94+ return r
95+
96+ def get_plugins (self ):
97+ url = "%s/api/plugins" % (self .base_url )
98+ r = self .__get (url , params = None )
99+ if r .is_success ():
100+ r .response_json = [APIResult .from_dict (d ) for d in r .json ()]
101+ return r
0 commit comments