html변환, wp api push 테스트 완료
This commit is contained in:
parent
39cf244de9
commit
6ff1eb043e
@ -20,9 +20,9 @@ make.com을 이용해서 만든 AutoMation Flow를 Python을 이용하여 변환
|
|||||||
### Python 개발 순서
|
### Python 개발 순서
|
||||||
* DB에서 url을 가져오는 코드작성(완료).
|
* DB에서 url을 가져오는 코드작성(완료).
|
||||||
* url을 이용해서 파싱하고 텍스트만 추출하는 기능 구현(완료).
|
* url을 이용해서 파싱하고 텍스트만 추출하는 기능 구현(완료).
|
||||||
* OpenAI이용 코드 작성(진행중).
|
* OpenAI이용 코드 작성(완료)-비용 절감을 위하여 제목, 이미지 생성 제외.
|
||||||
* HTML문서 변환 코드 작성.
|
* HTML문서 변환 코드 작성(완료).
|
||||||
* 워드프레스 등록 플로우 코드 작성.
|
* 워드프레스 등록 플로우 코드 작성(기능 테스트 완료 - 연결 필요).
|
||||||
* 코드 리팩토링.
|
* 코드 리팩토링.
|
||||||
|
|
||||||
## 코드 이슈
|
## 코드 이슈
|
||||||
|
30
convert_md.py
Normal file
30
convert_md.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import os
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import markdown
|
||||||
|
import translate_article as ta
|
||||||
|
import open_ai as oa
|
||||||
|
|
||||||
|
# .env 파일에서 API 키 로드
|
||||||
|
load_dotenv(r'./.env.dev')
|
||||||
|
|
||||||
|
# 예시 기사 텍스트 (text 파싱 결과로 제공된 텍스트를 사용할 수 있습니다)
|
||||||
|
article_text = ta.getContents()
|
||||||
|
|
||||||
|
# 블로그 스타일 참고 텍스트
|
||||||
|
style_reference = os.getenv("reference_style")
|
||||||
|
|
||||||
|
# 블로그 포스트 생성
|
||||||
|
blog_post = oa.generate_blog_post(article_text, style_reference)
|
||||||
|
|
||||||
|
# 결과 출력
|
||||||
|
print(blog_post)
|
||||||
|
|
||||||
|
# Markdown 텍스트 예시
|
||||||
|
markdown_text = blog_post
|
||||||
|
|
||||||
|
# Markdown을 HTML로 변환
|
||||||
|
html = markdown.markdown(markdown_text)
|
||||||
|
|
||||||
|
# 결과 출력
|
||||||
|
print("Converted HTML:")
|
||||||
|
print(html)
|
21
open_ai.py
21
open_ai.py
@ -17,6 +17,8 @@ def generate_blog_post(article_text, style_reference):
|
|||||||
너는 대한민국에 거주하는 블로그 전문가이다.
|
너는 대한민국에 거주하는 블로그 전문가이다.
|
||||||
네가 작성한 블로그 글은 지난 3년간 높은 주목성, 관여도, 전환율을 만들었다.
|
네가 작성한 블로그 글은 지난 3년간 높은 주목성, 관여도, 전환율을 만들었다.
|
||||||
이 전문성을 이용해서 제공받는 기사를 블로그 형태로 변형하여 작성해야만 한다.
|
이 전문성을 이용해서 제공받는 기사를 블로그 형태로 변형하여 작성해야만 한다.
|
||||||
|
---
|
||||||
|
글을 작성하고 제목을 만들어서 맨 마지막 줄에 추가해줘.
|
||||||
"""
|
"""
|
||||||
f"\n블로그 스타일은 아래 문서를 모방해줘. 적절한 사례들이 들어가도 좋겠어.\n---\n{style_reference}\n"
|
f"\n블로그 스타일은 아래 문서를 모방해줘. 적절한 사례들이 들어가도 좋겠어.\n---\n{style_reference}\n"
|
||||||
f"제공된 기사 내용:\n{article_text}"
|
f"제공된 기사 내용:\n{article_text}"
|
||||||
@ -36,15 +38,16 @@ def generate_blog_post(article_text, style_reference):
|
|||||||
blog_post = response.choices[0].message.content
|
blog_post = response.choices[0].message.content
|
||||||
return blog_post
|
return blog_post
|
||||||
|
|
||||||
# 예시 기사 텍스트 (text 파싱 결과로 제공된 텍스트를 사용할 수 있습니다)
|
if __name__ == "__main__":
|
||||||
article_text = ta.getContents()
|
# 예시 기사 텍스트 (text 파싱 결과로 제공된 텍스트를 사용할 수 있습니다)
|
||||||
|
article_text = ta.getContents()
|
||||||
|
|
||||||
# 블로그 스타일 참고 텍스트
|
# 블로그 스타일 참고 텍스트
|
||||||
style_reference = os.getenv("reference_style")
|
style_reference = os.getenv("reference_style")
|
||||||
|
|
||||||
# 블로그 포스트 생성
|
# 블로그 포스트 생성
|
||||||
blog_post = generate_blog_post(article_text, style_reference)
|
blog_post = generate_blog_post(article_text, style_reference)
|
||||||
|
|
||||||
# 결과 출력
|
# 결과 출력
|
||||||
print(">>>>\n" * 3)
|
print(">>>>\n" * 3)
|
||||||
print(blog_post)
|
print(blog_post)
|
BIN
requirements.txt
BIN
requirements.txt
Binary file not shown.
43
wp.py
Normal file
43
wp.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import os
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# .env 파일에서 API 키 로드
|
||||||
|
load_dotenv(r'./.env.dev')
|
||||||
|
|
||||||
|
wp_url = os.getenv('WP_URL')
|
||||||
|
wp_usr = os.getenv('WP_USERNAME')
|
||||||
|
wp_key = os.getenv('WP_API_KEY')
|
||||||
|
status = 'draft' #즉시발행:publish, 임시저장:draft
|
||||||
|
# slug = 'input your slug'
|
||||||
|
|
||||||
|
title = '파이썬 자동포스팅'
|
||||||
|
content = 'html 호출 연동 필요.' # 연결만하면됨 테스트 완료.
|
||||||
|
category_id = [2] # 카테고리 아이디
|
||||||
|
# tag_ids = [21] #태그아이디
|
||||||
|
media_id=None #이미지 업로드를 제외 None
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"status": status,
|
||||||
|
"title": title,
|
||||||
|
"content": content,
|
||||||
|
"date": datetime.now().isoformat(), # YYYY-MM-DDTHH:MM:SS
|
||||||
|
"categories": category_id
|
||||||
|
}
|
||||||
|
if media_id is not None:
|
||||||
|
payload['featured_media'] = media_id
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
result = requests.post(urljoin(wp_url, "wp-json/wp/v2/posts"),
|
||||||
|
data=json.dumps(payload),
|
||||||
|
headers={'Content-type': "application/json"},
|
||||||
|
auth=(wp_usr, wp_key))
|
||||||
|
|
||||||
|
if result.ok:
|
||||||
|
print(f"성공 code:{result.status_code}")
|
||||||
|
else:
|
||||||
|
print(f"실패 code:{result.status_code} reason:{result.reason} msg:{result.text}")
|
Loading…
Reference in New Issue
Block a user