linting
This commit is contained in:
@@ -6,9 +6,16 @@ import json
|
||||
|
||||
|
||||
class SWP_Webspeiseplan_API:
|
||||
"""This class is used download content from SWP_Webspeiseplan.
|
||||
|
||||
Returns:
|
||||
[type]: [description]
|
||||
"""
|
||||
|
||||
URL_BASE = "https://swp.webspeiseplan.de"
|
||||
|
||||
def __init__(self):
|
||||
"""Initialize the configuration for the web service ."""
|
||||
logging.basicConfig()
|
||||
self.logger = logging.getLogger(__name__)
|
||||
self.__parse_token()
|
||||
@@ -20,7 +27,9 @@ class SWP_Webspeiseplan_API:
|
||||
"_": int(time.time() * 1000),
|
||||
}
|
||||
|
||||
self.outlets = {outlet["name"]: outlet for outlet in self.__parse_model(params)}
|
||||
self.outlets = {
|
||||
outlet["name"]: outlet for outlet in self.__parse_model(params)
|
||||
}
|
||||
self.menus = {}
|
||||
self.meal_categories = {}
|
||||
for outlet in self.outlets.values():
|
||||
@@ -38,6 +47,7 @@ class SWP_Webspeiseplan_API:
|
||||
self.meal_categories[outlet["name"]] = id2cat
|
||||
|
||||
def __parse_token(self):
|
||||
"""Get the token from the proxy server."""
|
||||
req = urllib.request.Request(self.URL_BASE)
|
||||
with urllib.request.urlopen(req) as resp:
|
||||
txt = resp.read().decode("utf-8")
|
||||
@@ -50,14 +60,23 @@ class SWP_Webspeiseplan_API:
|
||||
self.logger.debug(f"__parse_token: PROXY_TOKEN {self.proxy_token}")
|
||||
|
||||
def __spoof_req_headers(req: urllib.request.Request):
|
||||
req.add_header("Accept", "application/json, text/javascript, */*; q=0.01")
|
||||
"""Add headers to a request .
|
||||
|
||||
Args:
|
||||
req (urllib.request.Request): [description]
|
||||
"""
|
||||
req.add_header(
|
||||
"Accept", "application/json, text/javascript, */*; q=0.01"
|
||||
)
|
||||
req.add_header("Accept-Language", "en-US,en;q=0.9")
|
||||
req.add_header("Connection", "keep-alive")
|
||||
req.add_header("Host", "swp.webspeiseplan.de")
|
||||
req.add_header("Referer", "https://swp.webspeiseplan.de/InitialConfig")
|
||||
req.add_header(
|
||||
"Sec-Ch-Ua",
|
||||
'"Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
|
||||
'"Not/A)Brand";v="99", '
|
||||
+ '"Google Chrome";v="115", '
|
||||
+ '"Chromium";v="115"',
|
||||
)
|
||||
req.add_header("Sec-Ch-Ua-Mobile", "?0")
|
||||
req.add_header("Sec-Ch-Ua-Platform", "Linux")
|
||||
@@ -66,11 +85,21 @@ class SWP_Webspeiseplan_API:
|
||||
req.add_header("Sec-Fetch-Site", "same-origin")
|
||||
req.add_header(
|
||||
"User-Agent",
|
||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
|
||||
"Mozilla/5.0 (X11; Linux x86_64) "
|
||||
+ "AppleWebKit/537.36 (KHTML, like Gecko) "
|
||||
+ "Chrome/115.0.0.0 Safari/537.36",
|
||||
)
|
||||
req.add_header("X-Requested-With", "XMLHttpRequest")
|
||||
|
||||
def __parse_model(self, params: dict):
|
||||
"""Retrieve data from host.
|
||||
|
||||
Args:
|
||||
params (dict): [description]
|
||||
|
||||
Returns:
|
||||
[type]: [description]
|
||||
"""
|
||||
url = f"{self.URL_BASE}/index.php?" + "&".join(
|
||||
[f"{k}={v}" for k, v in params.items()]
|
||||
)
|
||||
@@ -80,4 +109,3 @@ class SWP_Webspeiseplan_API:
|
||||
with urllib.request.urlopen(req) as resp:
|
||||
data = resp.read()
|
||||
return json.loads(data)["content"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user