#!/usr/bin/env python3 """ Queries wiki.openstreetmap.org for archived proposal pages without the {{Proposal page}} template. Sometimes when archiving a page people accidentally also replace the {{Proposal page}} template, which however means that proposal.py won't find the page anymore. This script lists such pages so that the template can be manually restored. """ import argparse import pywikiapi import mwparserfromhell OSMWIKI_ENDPOINT = 'https://wiki.openstreetmap.org/w/api.php' def run(): arg_parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter ) arg_parser.parse_args() osmwiki = pywikiapi.Site(OSMWIKI_ENDPOINT) for page in osmwiki.query_pages( generator='categorymembers', gcmtitle='Category:Archived proposals', gcmlimit='max', prop='templates', tltemplates='Template:Proposal page', ): if not 'templates' in page: print(page['title'])