From a936857eb9b8dafd19bab524e60632570cfcf51a Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Mon, 18 Sep 2023 22:44:52 +0200 Subject: [PATCH] add method private link featured media --- lib/WPImport.py | 123 +++++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/lib/WPImport.py b/lib/WPImport.py index 118c102..2ed874b 100644 --- a/lib/WPImport.py +++ b/lib/WPImport.py @@ -417,6 +417,67 @@ class WPimport: subdirectory = self._getDirectories(sub, "{0}/{1}".format(item, i)) return subdirectory + + def _linkFeaturedMedia(self, img_src): + try: + page = self._request.get(img_src) + if page.status_code == 200: + name_img = img_src.replace("_q", "") + name_img = name_img.split("/")[len(name_img.split("/"))-1] + params = {"search": name_img} + try: + page = self._request.get("{1}://{0}/wp-json/wp/v2/media".format(self._wordpress, self._protocol), auth=self._basic, params=params) + if page.status_code == 200: + res = page.json() + if len(res) > 0: + id_media = res[0]["id"] + data = {"featured_media": id_media} + try: + r = self._request.post("{2}://{0}/wp-json/wp/v2/posts/{1}".format(self._wordpress, result[0]["id"], self._protocol), auth=self._basic, headers=self._headers_json, data=json.dumps(data)) + if r.status_code == 200: + self._logger.info("{0} : Add media featured : {1}".format(self._name, r.json()["title"]["raw"])) + else: + self._logger.error("{0} : Connection error with status code for featured media : {1}".format(self._name, r.status_code)) + self._logger.debug("{0} : {1}".format(self._name, r.content)) + except ConnectionError as err: + self._logger.error("{0} : Connection error for post media featured : {1}".format(self._name, err)) + exit(1) + except Exception as err: + self._logger.error("{0} : Exception error for post media featured : {1}".format(self._name, err)) + else: + self._logger.info("{0} : No media found for {1}".format(self._name, h2)) + try: + page = self._request.get(img_src.replace("_q", "")) + if page.status_code == 200: + self._logger.info("{0} : Get image for media featured : {1}".format(self._name, img_src.replace("_q", ""))) + media = self._addOrUpdateMedia(img_src.replace("_q", ""), page) + if media["id"] != "": + self._linkFeaturedMedia(img_src.replace("_q", "")) + else: + self._logger.error("{0} : Connection error with status code for get image for featured media : {1}".format(self._name, page.status_code)) + self._logger.debug("{0} : {1}".format(self._name, page.content)) + except ConnectionError as err: + self._logger.error("{0} : Connection error for get to image for featured media : {1}".format(self._name, err)) + exit(1) + except Exception as err: + self._logger.error("{0} : Exception error for get to image media featured : {1}".format(self._name, err)) + else: + self._logger.error("{0} : Connection error with status code for search featured media: {1}".format(self._name, page.status_code)) + self._logger.debug("{0} : {1}".format(self._name, page.content)) + except ConnectionError as err: + self._logger.error("{0} : Connection error search featured media : {1}".format(self._name, err)) + exit(1) + except Exception as err: + self._logger.error("{0} : Exception error search featured media : {1}".format(self._name, err)) + else: + self._logger.error("{0} : Connection error for get featured media with status code : {1}".format(self._name, page.status_code)) + self._logger.debug("{0} : {1}".format(self._name, page.content)) + except ConnectionError as err: + self._logger.error("{0} : Connection error for get featured media : {1}".format(self._name, err)) + exit(1) + except Exception as err: + self._logger.error("{0} : Exception error for get featured media : {1}".format(self._name, err)) + ## Add or update featured media def _addOrUpdateFeaturedMedia(self, soup): @@ -429,69 +490,11 @@ class WPimport: if page.status_code == 200: result = page.json() if len(result) > 0: - if h2 == result[0]["title"]: + if h2 == self._replaceCaracter(result[0]["title"]): img = i.find_all("img") if len(img) > 0: img_src = img[0].get("src") - try: - page = self._request.get(img_src) - if page.status_code == 200: - name_img = img_src.replace("_q", "") - name_img = name_img.split("/")[len(name_img.split("/"))-1] - params = {"search": name_img} - try: - page = self._request.get("{1}://{0}/wp-json/wp/v2/media".format(self._wordpress, self._protocol), auth=self._basic, params=params) - - if page.status_code == 200: - res = page.json() - if len(res) > 0: - id_media = res[0]["id"] - data = {"featured_media": id_media} - try: - r = self._request.post("{2}://{0}/wp-json/wp/v2/posts/{1}".format(self._wordpress, result[0]["id"], self._protocol), auth=self._basic, headers=self._headers_json, data=json.dumps(data)) - if r.status_code == 200: - self._logger.info("{0} : Add media featured : {1}".format(self._name, r.json()["title"]["raw"])) - else: - self._logger.error("{0} : Connection error with status code for featured media : {1}".format(self._name, r.status_code)) - self._logger.debug("{0} : {1}".format(self._name, r.content)) - except ConnectionError as err: - self._logger.error("{0} : Connection error for post media featured : {1}".format(self._name, err)) - exit(1) - except Exception as err: - self._logger.error("{0} : Exception error for post media featured : {1}".format(self._name, err)) - else: - self._logger.info("{0} : No media found for {1}".format(self._name, h2)) - try: - page = self._request.get(img_src.replace("_q", "")) - if page.status_code == 200: - self._logger.info("{0} : Get image for media featured : {1}".format(self._name, img_src.replace("_q", ""))) - media = self._addOrUpdateMedia(img_src.replace("_q", ""), page) - if media["id"] != "": - self._addOrUpdateFeaturedMedia(soup) - else: - self._logger.error("{0} : Connection error with status code for get image for featured media : {1}".format(self._name, page.status_code)) - self._logger.debug("{0} : {1}".format(self._name, page.content)) - except ConnectionError as err: - self._logger.error("{0} : Connection error for get to image for featured media : {1}".format(self._name, err)) - exit(1) - except Exception as err: - self._logger.error("{0} : Exception error for get to image media featured : {1}".format(self._name, err)) - else: - self._logger.error("{0} : Connection error with status code for search featured media: {1}".format(self._name, page.status_code)) - self._logger.debug("{0} : {1}".format(self._name, page.content)) - except ConnectionError as err: - self._logger.error("{0} : Connection error search featured media : {1}".format(self._name, err)) - exit(1) - except Exception as err: - self._logger.error("{0} : Exception error search featured media : {1}".format(self._name, err)) - else: - self._logger.error("{0} : Connection error for get featured media with status code : {1}".format(self._name, page.status_code)) - self._logger.debug("{0} : {1}".format(self._name, page.content)) - except ConnectionError as err: - self._logger.error("{0} : Connection error for get featured media : {1}".format(self._name, err)) - exit(1) - except Exception as err: - self._logger.error("{0} : Exception error for get featured media : {1}".format(self._name, err)) + self._linkFeaturedMedia(img_src) else: self._logger.error("{0} : Connection error with status code for featured media : {1}".format(self._name, page.status_code)) self._logger.debug("{0} : {1}".format(self._name, page.content))