Page MenuHomePhabricator
Paste P46551

purge-all-in-namespace.py
ActivePublic

Authored by Lucas_Werkmeister_WMDE on Apr 12 2023, 2:07 PM.
Tags
None
Referenced Files
F36948310: purge-all-in-namespace.py
Apr 12 2023, 2:07 PM
Subscribers
None
#!/usr/bin/env python3
# based on https://github.com/lucaswerkmeister/tool-lexeme-forms/blob/282a7b6b186e32cbb92101500a8690470c179f64/purge-all-lexemes.py
import time
import mwapi
wiki = 'ks.wikipedia.org'
namespace = 828
user_agent = 'purge-all-in-namespace (Lucas Werkmeister; mail@lucaswerkmeister.de)'
session = mwapi.Session(
host=f'https://{wiki}',
user_agent=user_agent
)
for result in session.post(
action='purge',
generator='allpages',
gapnamespace=namespace,
gaplimit=30, # rate limit permits 30 purges per 60 seconds
forcelinkupdate=True,
continuation=True):
pages = result['purge']
first_title = pages[0]['title']
last_title = pages[-1]['title']
print(f'Purged {first_title:>32} ... {last_title:>32}', flush=True)
time.sleep(75) # rate limit permits 30 purges per 60 seconds, +15s for some buffer
print('Done.')