This commit is contained in:
icurfer 2024-10-01 22:38:45 +09:00
parent 06c050a73e
commit a8311edc14
4 changed files with 71 additions and 0 deletions

2
.gitignore vendored
View File

@ -122,6 +122,8 @@ celerybeat.pid
# Environments # Environments
.env .env
.env.dev
.env.prd
.venv .venv
env/ env/
venv/ venv/

View File

@ -1,2 +1,26 @@
# wp-post-automation # 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문서 변환 코드 작성.
* 워드프레스 등록 플로우 코드 작성.
* 코드 리팩토링.

45
get_url.py Normal file
View File

@ -0,0 +1,45 @@
import mysql.connector
from dotenv import load_dotenv
import os
# .env.demo 파일 로드
load_dotenv(r'./.env.dev')
# 환경 변수 가져오기
host = os.getenv('DB_HOST')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
database = os.getenv('DB_NAME')
# MariaDB에 연결하는 함수
def fetch_data_from_mariadb():
try:
# 데이터베이스 연결
connection = mysql.connector.connect(
host=host,
user=user,
password=password,
database=database
)
# 커서 생성
cursor = connection.cursor(dictionary=True)
# 쿼리 실행
query = "SELECT * FROM healty_url_source ORDER BY idx DESC LIMIT 1;"
cursor.execute(query)
# 결과 가져오기
result = cursor.fetchone()
return result
except mysql.connector.Error as err:
print(f"Error: {err}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
if __name__ == "__main__":
# 결과 확인
data = fetch_data_from_mariadb()
print(data['url'])

0
translate_article.py Normal file
View File