Користувач:BunykBot/fix typo redirects.py
Перейти до навігації
Перейти до пошуку
import pywikibot
from pywikibot import pagegenerators
import mwparserfromhell
import time
site = pywikibot.Site()
cat = pywikibot.Category(site, 'Категорія:Перенаправлення з помилок')
for r in pagegenerators.PreloadingGenerator(cat.articles(), 100):
pages2fix = list(r.getReferences()) # skip not referenced redirects
if not pages2fix:
continue
r_from = r.title()
r_to = r.getRedirectTarget().title()
print('Виправляю %s -> %s' % (r_from, r_to))
time.sleep(1)
for p in pages2fix:
if p.namespace().canonical_name in ['User']: # ingore some namespaces
continue
print('\tНа сторінці', p.title())
time.sleep(1)
wikicode = mwparserfromhell.parse(p.text)
for link in wikicode.filter_wikilinks():
if link.title == r_from:
link.title = r_to
new_text = str(wikicode)
if p.text == new_text:
print('\tВсе ок, нічого не треба виправляти')
continue
pywikibot.showDiff(p.text, new_text)
p.text = new_text
p.save('Виправлено помилки')