From 95f5203727e13cb27399316c4d00f014e90715a1 Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Tue, 4 Jul 2023 00:26:27 +0200 Subject: [PATCH] list menu with id --- lib/WPMenu.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/WPMenu.py b/lib/WPMenu.py index b118276..bcdac72 100644 --- a/lib/WPMenu.py +++ b/lib/WPMenu.py @@ -78,8 +78,27 @@ class WPMenu: soup = BeautifulSoup(content, self._parser) ul = soup.find_all("ul", id="listsmooth") + menu = list() for anchor in ul[0].find_all("li"): li = anchor.find_all("li") for child in li: a = child.find("a") - self._logger.info("{0} {1} : {2}".format(self._name, child, a)) + self._logger.info("{0} {1} : {2}".format(self._name, anchor.find("a").get_text(), a.get_text())) + for i in ["categories", "tags"]: + try: + params = {"search":a.get_text(), "per_page":"100"} + page = self._request_wordpress.get("{2}://{0}/wp-json/wp/v2/{1}".format(self._wordpress, i, self._protocol_wordpress), auth=self._basic, params=params) + if page.status_code == 200: + result = page.json() + if len(result) > 0: + menu.append({"id":result[0]["id"], "type":i, "title": a.get_text(), "parent":anchor.find("a").get_text()}) + else: + self._logger.error("{0} : {2} didn't get due status code : {1}".format(self._name, page.status_code, i)) + self._logger.debug("{0} : {1}".format(self._name, page.content)) + except ConnectionError as err: + self._logger.error("{0} : Connection error for get url {1} : {2}".format(self._name, "{2}://{0}/wp-json/wp/v2/{1}".format(self._wordpress, i, self._protocol_wordpress), err)) + exit(1) + except Exception as err: + self._logger.error("{0} : Exception error for get url {1} : {2}".format(self._name, "{2}://{0}/wp-json/wp/v2/{1}".format(self._wordpress, i, self._protocol_wordpress), err)) + for i in menu: + self._logger.info("{0} : Menu : {1}".format(self._name, i)) \ No newline at end of file