83 lines
2.3 KiB
Python
83 lines
2.3 KiB
Python
import urllib.parse
|
|
|
|
|
|
class Fillin_Client():
|
|
|
|
def __init__(self, settings, web):
|
|
self.config = settings
|
|
self.web = web
|
|
|
|
def __getattr__(self, name):
|
|
''' will only get called for undefined attributes '''
|
|
if hasattr(self.web.session, name):
|
|
return eval("self.web.session.%s" % name)
|
|
|
|
|
|
class fHDHR_API_URLs():
|
|
|
|
def __init__(self, settings, web):
|
|
self.config = settings
|
|
self.web = web
|
|
|
|
self.headers = {'User-Agent': "fHDHR/%s" % self.config.internal["versions"]["fHDHR"]}
|
|
|
|
# Replaced later
|
|
self.client = Fillin_Client(settings, web)
|
|
|
|
self.address = self.config.dict["fhdhr"]["address"]
|
|
self.discovery_address = self.config.dict["fhdhr"]["discovery_address"]
|
|
self.port = self.config.dict["fhdhr"]["port"]
|
|
|
|
def get(self, url, *args):
|
|
|
|
req_method = type(self.client).__name__
|
|
|
|
if not url.startswith("http"):
|
|
if not url.startswith("/"):
|
|
url = "/%s" % url
|
|
url = "%s%s" % (self.base, url)
|
|
|
|
if req_method == "FlaskClient":
|
|
self.client.get(url, headers=self.headers, *args)
|
|
else:
|
|
self.client.get(url, headers=self.headers, *args)
|
|
|
|
def post(self, url, *args):
|
|
|
|
req_method = type(self.client).__name__
|
|
|
|
if not url.startswith("http"):
|
|
if not url.startswith("/"):
|
|
url = "/%s" % url
|
|
url = "%s%s" % (self.base, url)
|
|
|
|
if req_method == "FlaskClient":
|
|
self.client.post(url, headers=self.headers, *args)
|
|
else:
|
|
self.client.post(url, headers=self.headers, *args)
|
|
|
|
@property
|
|
def base(self):
|
|
if self.discovery_address:
|
|
return ('http://%s:%s' % self.discovery_address_tuple)
|
|
elif self.address == "0.0.0.0":
|
|
return ('http://%s:%s' % self.address_tuple)
|
|
else:
|
|
return ('http://%s:%s' % self.address_tuple)
|
|
|
|
@property
|
|
def base_quoted(self):
|
|
return urllib.parse.quote(self.base)
|
|
|
|
@property
|
|
def discovery_address_tuple(self):
|
|
return (self.discovery_address, int(self.port))
|
|
|
|
@property
|
|
def localhost_address_tuple(self):
|
|
return ("127.0.0.1", int(self.port))
|
|
|
|
@property
|
|
def address_tuple(self):
|
|
return (self.address, int(self.port))
|