diff --git a/README.md b/README.md index b826c27..db0d672 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # wp-post-automation -워드프레스 포스팅 자동화 프로젝트. -make.com을 이용해서 만든 AutoMation Flow를 Python을 이용하여 변환. +2024.10.04 - 테스트 완료. 프로젝트 1차 종료. +* 워드프레스 포스팅 자동화 프로젝트. +* make.com을 이용해서 만든 AutoMation Flow를 Python을 이용하여 변환. + ## 기존 Flow * MariaDB에 저장된 최신 참고 url정보를 얻어온다. * HTTP모듈을 이용하여 참고 자료를 가져온다. @@ -22,11 +24,20 @@ make.com을 이용해서 만든 AutoMation Flow를 Python을 이용하여 변환 * url을 이용해서 파싱하고 텍스트만 추출하는 기능 구현(완료). * OpenAI이용 코드 작성(완료)-비용 절감을 위하여 제목, 이미지 생성 제외. * HTML문서 변환 코드 작성(완료). -* 워드프레스 등록 플로우 코드 작성(기능 테스트 완료 - 연결 필요). +* 워드프레스 등록 플로우 코드 작성(완료). ### 코드 리팩토링. -* 전체 리팩토링. -* 모듈화, 패키지화. +* 전체 리팩토링(완료). +* 모듈화, 패키지화(완료). + +## Docker Image Build +2024.10.04 업데이트 +* Dockerfile 추가(완료). + +## Kubernetes manifests +2024.10.04 업데이트 +* 샘플 템플릿 작성(완료) +* 쿠버네티스 환경 테스트(완료). ## 코드 이슈 ### 네이버 블로그 크롤링 diff --git a/k8s-manifests/env.yaml b/k8s-manifests/env.yaml new file mode 100644 index 0000000..3562cf8 --- /dev/null +++ b/k8s-manifests/env.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Secret +metadata: + name: wp-secret + namespace: default +type: Opaque +data: + DB_HOST: + DB_USER: + DB_PASSWORD: + DB_NAME: + OPENAI_API_KEY: + WP_URL: + WP_USER: + WP_API_KEY: + WP_POST_STYLE: "" \ No newline at end of file diff --git a/k8s-manifests/pod.yaml b/k8s-manifests/pod.yaml new file mode 100644 index 0000000..3347955 --- /dev/null +++ b/k8s-manifests/pod.yaml @@ -0,0 +1,61 @@ +apiVersion: v1 +kind: Pod +metadata: + name: wp-auto-pod + namespace: default + annotations: + sidecar.istio.io/inject: "false" +spec: + containers: + - name: wp-auto-container + image: harbor.icurfer.com/py_prj/wp-auto:0.0.1 + imagePullPolicy: IfNotPresent + env: + - name: DB_HOST + valueFrom: + secretKeyRef: + name: wp-secret + key: DB_HOST + - name: DB_USER + valueFrom: + secretKeyRef: + name: wp-secret + key: DB_USER + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: wp-secret + key: DB_PASSWORD + - name: DB_NAME + valueFrom: + secretKeyRef: + name: wp-secret + key: DB_NAME + - name: OPENAI_API_KEY + valueFrom: + secretKeyRef: + name: wp-secret + key: OPENAI_API_KEY + - name: WP_URL + valueFrom: + secretKeyRef: + name: wp-secret + key: WP_URL + - name: WP_USER + valueFrom: + secretKeyRef: + name: wp-secret + key: WP_USER + - name: WP_API_KEY + valueFrom: + secretKeyRef: + name: wp-secret + key: WP_API_KEY + - name: WP_POST_STYLE + valueFrom: + secretKeyRef: + name: wp-secret + key: WP_POST_STYLE + restartPolicy: Never + imagePullSecrets: + - name: harbor-icurfer-private \ No newline at end of file diff --git a/main.py b/main.py index e1c3063..2bc0119 100644 --- a/main.py +++ b/main.py @@ -3,28 +3,33 @@ from package import GetConfig, MariaDB, ChangeTextToPost, WordPress import markdown # 2024-10-03 환경 변수 호출 -print('### Get values from .env') +print('### Get values From .env') config = GetConfig() dict_data = config.get_config_as_dict() # 2024-10-03 db에서 url정보 호출 +print('### Get URL From DB') db = MariaDB(dict_data) url = db.fetch_data_from_mariadb()['url'] # 2024-10-03 url을 이용해서 text추출 +print('### Get content From URL') origin_content = pkg.getContents(url) # 2024-10-03 openAI를 이용하여 게시글 스타일 변경 +print('### Convert to Post - openAI') openai_key = dict_data['openai_api_key'] wp_reference_style = dict_data['wp_post_style'] open_ai = ChangeTextToPost(openai_key) post_article = open_ai.generate_blog_post(origin_content, wp_reference_style) +print('### Convert to HTML - markdown to html') # 2024-10-03 Markdown을 HTML로 변환 html = markdown.markdown(post_article) # 2024-10-03 워드프레스 포스팅 임시등록 +print('### Create post') wp = WordPress(dict_data) rs = wp.create_post(2,html) @@ -32,7 +37,7 @@ if __name__ == "__main__": # print(post_article) print("추가 확인을 위한 출력") if rs.ok: - print(f"성공 code:{rs.status_code}") + print(f"### 성공 code:{rs.status_code}") else: - print(f"실패 code:{rs.status_code} reason:{rs.reason} msg:{rs.text}") + print(f"### 실패 code:{rs.status_code} reason:{rs.reason} msg:{rs.text}")