html변환, wp api push 테스트 완료

This commit is contained in:
hm-desk 2024-10-02 23:50:09 +09:00
parent 39cf244de9
commit 6ff1eb043e
5 changed files with 88 additions and 12 deletions

View File

@ -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
View 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)

View File

@ -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)

Binary file not shown.

43
wp.py Normal file
View 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}")