Source code for wdp.upload
import re
from typing import List, Tuple
import pywikibot
[docs]def upload_formatted_entries(
formatted_entries: List[Tuple[str, str]],
lang_name: str,
wiktionary_language: str = "en",
page_prefix: str = "",
):
site = pywikibot.Site(code=wiktionary_language, fam="wiktionary")
site.login()
for word_form, entry_string in formatted_entries:
page = pywikibot.Page(site, page_prefix + word_form)
order = re.findall(r"(^|\n)==([^=]*?)==[\n]", page.text)
if order:
outer_continue = False
for _, lang in order:
if lang == lang_name:
print(f'Entry already exists for {lang_name} at "{word_form}", skipping.')
outer_continue = True
break
elif lang > lang_name:
page.text = page.text.replace(f"=={lang}==", f"{entry_string}\n\n----\n\n=={lang}==")
break
if outer_continue:
continue
else:
page.text = entry_string
page.save(f"Automatic import of {lang_name} entry with WDP.")