Spaces:
Sleeping
Sleeping
from wordpress_xmlrpc import Client, WordPressPost | |
from wordpress_xmlrpc.methods.posts import NewPost | |
from typing import Dict | |
class WordPressHandler: | |
def __init__(self, url: str, username: str, password: str): | |
self.client = Client(url, username, password) | |
def publish_post(self, content: str, metadata: Dict, image_url: str) -> int: | |
post = WordPressPost() | |
post.title = metadata['title'] | |
post.content = f'<img src="{image_url}" alt="Cover Image">\n{content}' | |
post.slug = metadata['slug'] | |
post.post_status = 'draft' | |
post.terms_names = { | |
'category': ['Your Category'], | |
'post_tag': ['Your Tags'] | |
} | |
post.custom_fields = [] | |
post.custom_fields.append({ | |
'key': '_yoast_wpseo_metadesc', | |
'value': metadata['meta_description'] | |
}) | |
post_id = self.client.call(NewPost(post)) | |
return post_id |