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 |