From 3d7aa19441dd0bc33aaa201db3d67701167e0d9d Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Fri, 12 May 2023 00:16:58 +0200 Subject: [PATCH] add update --- lib/WPImport.py | 55 +++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/lib/WPImport.py b/lib/WPImport.py index 3badd98..adfa67f 100644 --- a/lib/WPImport.py +++ b/lib/WPImport.py @@ -5,6 +5,7 @@ from urllib.parse import urlparse import requests, os, logging, re, json from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry +from slugify import slugify class WPimport: # Constructor @@ -499,48 +500,52 @@ class WPimport: self._logger.error("{0} : Connection error with status code for get author : {1}".format(self._name, page.status_code)) self._logger.debug("{0} : {1}".format(page.content)) - - params = {"search":title} + slug = slugify(title) + params = {"slug":slug} try: page = self._request.get("http://{0}/wp-json/wp/v2/posts".format(self._wordpress), auth=self._basic, params=params) except Exception as err: self._logger.error("{0} : Connection error for search post : {1}".format(self._name, err)) exit(1) headers = {'Content-Type': 'application/json', 'Accept':'application/json'} + page_is_exist = True if page.status_code == 200: result = page.json() - if len(result) > 0: + if len(result) == 0: + page_is_exist = False + else: for i in result: - self._logger.debug("{0} : Data for post to delete : {1}".format(self._name, i)) - self._logger.info("{0} : Page {1} already exist and going to delete".format(self._name, title)) + self._logger.debug("{0} : Data for post to update : {1}".format(self._name, i)) + self._logger.info("{0} : Page {1} already exist and going to update".format(self._name, title)) post_id = i["id"] try: - params = {"force":1} - page = self._request.delete("http://{0}/wp-json/wp/v2/posts/{1}".format(self._wordpress, post_id), auth=self._basic, headers=headers, params=params) + page = self._request.post("http://{0}/wp-json/wp/v2/posts/{1}".format(self._wordpress, post_id), auth=self._basic, headers=headers, data=json.dumps(data)) except Exception as err: - self._logger.error("{0} : Connection error for delete post : {1}".format(self._name, err)) + self._logger.error("{0} : Connection error for update post : {1}".format(self._name, err)) exit(1) if page.status_code == 200: result = page.json() - self._logger.info("{0} : Post deleted : {1}".format(self._name, title)) + self._logger.info("{0} : Post updated : {1}".format(self._name, title)) + self._addOrUpdateComment(result["id"], comment_post, result["title"]["raw"]) + self._linkImgPost(result["title"]["raw"], list_img, result["id"]) else: - self._logger.error("{0} : Post not deleted due status code : {1}".format(self._name, page.status_code)) + self._logger.error("{0} : Post not updated due status code : {1}".format(self._name, page.status_code)) self._logger.debug("{0} : {1}".format(self._name, page.content)) else: - self._logger.error("{0} : Connection for delete post error with status code : {1}".format(self._name, page.status_code)) + self._logger.error("{0} : Connection for update post error with status code : {1}".format(self._name, page.status_code)) self._logger.debug("{0} : {1}".format(self._name, page.content)) - - try: - page = self._request.post("http://{0}/wp-json/wp/v2/posts".format(self._wordpress), auth=self._basic, headers=headers, data=json.dumps(data)) - except Exception as err: - self._logger.error("{0} : Connection error for create post : {1}".format(self._name, err)) - exit(1) - if page.status_code == 201: - result = page.json() - self._logger.info("{0} : Post added : {1}".format(self._name, result["title"]["raw"])) - self._addOrUpdateComment(result["id"], comment_post, result["title"]["raw"]) - self._linkImgPost(result["title"]["raw"], list_img, result["id"]) - else: - self._logger.error("{0} : Post not added due status code : {1}".format(self._name, r.status_code)) - self._logger.debug("{0} : {1}".format(self._name, r.content)) + if page_is_exist == False: + try: + page = self._request.post("http://{0}/wp-json/wp/v2/posts".format(self._wordpress), auth=self._basic, headers=headers, data=json.dumps(data)) + except Exception as err: + self._logger.error("{0} : Connection error for create post : {1}".format(self._name, err)) + exit(1) + if page.status_code == 201: + result = page.json() + self._logger.info("{0} : Post added : {1}".format(self._name, result["title"]["raw"])) + self._addOrUpdateComment(result["id"], comment_post, result["title"]["raw"]) + self._linkImgPost(result["title"]["raw"], list_img, result["id"]) + else: + self._logger.error("{0} : Post not added due status code : {1}".format(self._name, r.status_code)) + self._logger.debug("{0} : {1}".format(self._name, r.content))