import requests
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
import time
import os
# Configura tus accesos
chatgpt_api_key = "API_CHATGPT"
wordpress_url = "https://tublog.com/xmlrpc.php"
wordpress_user = "admin"
wordpress_password = "tupassword"
def get_meal_plan(prompt):
headers = {
"Authorization": f"Bearer {chatgpt_api_key}",
"Content-Type": "application/json",
}
data = {
"prompt": prompt,
"max_tokens": 1500,
"temperature": 0.7,
}
response = requests.post(
"https://api.openai.com/v1/engines/text-davinci-002/completions", headers=headers, json=data)
if response.status_code == 200:
result = response.json()["choices"][0]["text"].strip()
title_start = result.find("[")
title_end = result.find("]", title_start)
title = result[title_start+1:title_end].strip()
content = result[:title_start].strip() + result[title_end+1:].strip()
return title, content
else:
print("Error al obtener el plan alimenticio:", response.json())
return None, None
# Función para publicar un plan de alimentación en WordPress
def post_to_wordpress(title, content):
wp = Client(wordpress_url, wordpress_user, wordpress_password)
post = WordPressPost()
post.title = title
post.content = content
post.post_status = "publish"
post_id = wp.call(NewPost(post))
return post_id
# Solicitar el número de planes de alimentación a publicar y la cantidad de horas entre publicaciones
total_posts = 10
hours_between_posts = 4
# Solicita y publica los planes de alimentación
for i in range(total_posts):
prompt = f"Como si fueras un experto en nutrición y además un experimentado redactor con conocimiento de técnicas de SEO, dame un plan alimenticio que pueda insertar en un blog, agrega el título del plan alimenticio y el número de calorías que aporta, así como los ingredientes de cada alimento, agregale una breve introducción explicando para que tipo de personas se recomienda ese plan alimenticio. Es importante que el titulo sea creativo y llamativo. Agrega la receta de cada una de las comidas. Es importante que en la respuesta solo incluya solo la información que se publicará en el blog, no me des ninguna clase de respuesta tuya, solo el contenido. Coloca el contenido en un formato JSON es decir con los valores, no agregues la palabra 'Introducción:' para empezar la introducción, el contenido puede ser HTML para poder incluir negritas, h2, h3 y demás elementos que den buen formato, agrega unos keywords en el campo 'keywords' del json relacionados con algun ingrediente o comida solo 3 keywords, los campos del json seran: titulo, keywords, contenido. Día {i+1}"
title, content = get_meal_plan(prompt)
if title and content:
post_id = post_to_wordpress(title, content)
print(
f"Publicación exitosa: {post_id}")
else:
print(f"No se pudo obtener el plan alimenticio para el día {i+1}.")
if i < total_posts - 1:
time.sleep(hours_between_posts * 3600)
print("Proceso completo")