gpn23-recipes/4_post_to_wiki.py

30 lines
993 B
Python

import os
import mwclient
import sys
from tqdm import tqdm
from config import *
# Template strings
HIDDEN_COMMENT = '<!-- This page is auto-generated. Do not edit manually. -->'
CATEGORY_TEMPLATE = '\n'.join('[[Category:{0}]]'.format(cat) for cat in WIKI_CATEGORY_LIST)
# Connect to MediaWiki
site = mwclient.Site(WIKI_HOST, path=WIKI_PATH)
site.login(WIKI_USERNAME, WIKI_PASSWORD)
# Process and upload each .mediawiki file
for filename in tqdm(os.listdir(DIRECTORY)):
if filename.endswith('.mediawiki'):
filepath = os.path.join(DIRECTORY, filename)
article_name = WIKI_ARTICLE_PREFIX + filename.replace('.mediawiki', '')
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# Compose final content
final_content = f"{HIDDEN_COMMENT}\n\n{content}\n\n{CATEGORY_TEMPLATE}"
# Post to MediaWiki
page = site.pages[article_name]
page.save(final_content, summary='Automated upload of recipe page')