# wp-post-automation 워드프레스 포스팅 자동화 프로젝트. make.com을 이용해서 만든 AutoMation Flow를 Python을 이용하여 변환. ## 기존 Flow * MariaDB에 저장된 최신 참고 url정보를 얻어온다. * HTTP모듈을 이용하여 참고 자료를 가져온다. * 가져온 HTML형태의 자료를 Text만 추출한다. * OpenAI를 이용하여 블로그 형태로 변환한다. * OpenAI를 이용하여 블로그 제목을 생성한다. * OpenAI를 이용하여 제목을 참고하여 섬네일을 생성한다. * 생성된 자료들을 이용하여 HTML형식으로 변환한다. * WordPress에 이미지를 등록한다. * WordPress에 포스팅을 한다. ## 개발 계획 * 기존 Flow를 Python으로 개발한다. * 트리거가 발생하면 실행시키는 컨테이너로 빌드한다. * kubectl create -f file.yaml을 이용하여 1회성 동작 하도록 구현한다. ### Python 개발 순서 * DB에서 url을 가져오는 코드작성(완료). * url을 이용해서 파싱하고 텍스트만 추출하는 기능 구현(완료). * OpenAI이용 코드 작성(완료)-비용 절감을 위하여 제목, 이미지 생성 제외. * HTML문서 변환 코드 작성(완료). * 워드프레스 등록 플로우 코드 작성(기능 테스트 완료 - 연결 필요). ### 코드 리팩토링. * 전체 리팩토링. * 모듈화, 패키지화. ## 코드 이슈 ### 네이버 블로그 크롤링 2024.10.02 기준 * 현재 일반 뉴스 기사는 잘 동작되는 것으로 보임. * 네이버 블로그는 js이슈로 크롤링이 안되는 것으로 추측. selenium검토 필요. ## 라이선스 ### 라이선스 검토 대상 2024.10.02 기준 패키지 라이선스 목록: ``` annotated-types (0.7.0): MIT License anyio (4.6.0): MIT License beautifulsoup4 (4.12.3): MIT License certifi (2024.8.30): Mozilla Public License 2.0 (MPL-2.0) charset-normalizer (3.3.2): MIT License colorama (0.4.6): BSD License distro (1.9.0): Apache License 2.0 exceptiongroup (1.2.2): MIT License h11 (0.14.0): MIT License httpcore (1.0.6): BSD License httpx (0.27.2): BSD License idna (3.10): BSD License jiter (0.5.0): MIT License mysql-connector-python (9.0.0): GNU General Public License v2.0 (GPL-2.0) openai (1.51.0): MIT License pydantic (2.9.2): MIT License pydantic_core (2.23.4): MIT License python-dotenv (1.0.1): BSD License requests (2.32.3): Apache License 2.0 sniffio (1.3.1): MIT License soupsieve (2.6): MIT License tqdm (4.66.5): MPL-2.0 typing_extensions (4.12.2): Python Software Foundation License urllib3 (2.2.3): MIT License ``` ### 라이선스 이슈 mysql-connector-python이 GPL-2.0 라이선스를 따릅니다. 이 라이선스는 강력한 '카피레프트' 성격을 가지고 있으며, 프로젝트 전체를 GPL-2.0으로 배포해야 할 의무가 있습니다. 이 라이선스를 사용하는 패키지를 포함한 프로젝트를 배포할 때는 소스 코드 공개 및 동일한 라이선스로 배포해야 합니다. PyMySQL, mysqlclient 검토 필요.