diff --git a/lib/WPMenu.py b/lib/WPMenu.py index bcdac72..6b7af6c 100644 --- a/lib/WPMenu.py +++ b/lib/WPMenu.py @@ -79,26 +79,42 @@ class WPMenu: soup = BeautifulSoup(content, self._parser) ul = soup.find_all("ul", id="listsmooth") menu = list() + parents = 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, 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 + parent = anchor.find("a").get_text() + href = anchor.find("a").get("href") + if href == "#": + li = anchor.find_all("li") + for child in li: + a = child.find("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":parent}) + 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)) + else: + self._logger.info("{0} : Parent title : {1}".format(self._name, parent)) + parents.append(parent) + for i in range(0, len(menu)-1): + self._logger.info("{0} : Menu : {1} {2}".format(self._name, menu[i], len(parents))) + for j in range(0, len(parents)-1): + self._logger.info("{0} : Comparaison : {1} {2}".format(self._name, menu[i]["title"], parents[j])) + + if menu[i]["title"] == parents[j]: + self._logger.info("{0} del : {1}".format(self._name, parents[j])) + del parents[j] + + for i in parents: + self._logger.info("{0} : Parent : {1}".format(self._name, i)) \ No newline at end of file