Gebruiker:HernoemBot/bulkmove.py

Uit Wikipedia, de vrije encyclopedie

Voor het hernoemen van een serie metapagina's (maar geen categorieën!), inclusief het bijwerken van het label op Wikidata.

import pwb
import pywikibot
from pywikibot.backports import Tuple
import scripts.movepages
from scripts.movepages import MovePagesBot

def main(*args: Tuple[str, ...]) -> None:
    summary = ''
    
    local_args = pywikibot.handle_args(args)
    for arg in local_args:
        option, _, value = arg[1:].partition(':')
        if option == 'summary':
            summary = value
    
    inputFile = open('input.txt', 'r', encoding='utf-8')
    site = pywikibot.Site()
    # call movepages.py
    options = {'always': True, 'summary': summary}
    bot = MovePagesBot(**options)
    for line in inputFile:
        old_title, new_title = line.split('\t')
        try:
            bot.move_one(pywikibot.Page(site, old_title), new_title)
        except Error:
            pywikibot.error('Fatal error:', exc_info=True)

        # update Wikidata label
        page = pywikibot.Page(site, new_title)
        try:
            item = pywikibot.ItemPage.fromPage(page)
            item.get()
            item.editLabels(labels={'nl': page.title(with_ns=True)}, summary='Update [nl] label')
        except pywikibot.exceptions.NoPageError:
            pass

    inputFile.close()
    print('Done.')


if __name__ == '__main__':
    main()