Gebruiker:Gerbennn/catonderhoud.py

Doel bewerken

Deze bot:

  1. verplaatst artikelen en subcats van de categorieën in Categorie:Wikipedia:Redirect van categorie naar de bedoelde categorie (de redirect)
  2. Leegt de categorien in Categorie:Wikipedia:Opgeheven categorie


Licentie bewerken

Deze bot is vrijgegeven onder de CC-BY-SA 2.5 NL licentie

Code bewerken

##################################
#     For Cat Maintanance work   #
#   By Gerben van der Stouwe     #
# Licensed under CC-BY-SA 2.5 NL #
##################################
import re, sys, string, pickle
import wikipedia, catlib, config, pagegenerators

def redircats():
    mastercat = catlib.Category(wikipedia.getSite(), 'Categorie:Wikipedia:Redirect van categorie')
    redircats = mastercat.subcategories()

    for werkcat in redircats:
        subcatwijz = werkcat.subcategories()
        artwijz = werkcat.articles()
        if len(subcatwijz) == 0 and len(artwijz) ==0:
            wikipedia.output(u'Geen verandering nodig in ' + werkcat.title())
        else:
            targetcat = catlib.Category(wikipedia.getSite(), werkcat.getRedirectTarget())
            gen = pagegenerators.CategorizedPageGenerator(werkcat, recurse = False)
            preloadingGen = pagegenerators.PreloadingGenerator(gen)
            for article in preloadingGen:
                catlib.change_category(article, werkcat, targetcat,'[[Categorie:Wikipedia:Redirect van categorie]] fix')
            for subcategory in subcatwijz:
                catlib.change_category(subcategory, werkcat, targetcat,'[[Categorie:Wikipedia:Redirect van categorie]] fix')
                
def catschoon():
    mastercat = catlib.Category(wikipedia.getSite(), 'Categorie:Wikipedia:Opgeheven categorie')
    opgehevencats = mastercat.subcategories()

    for werkcat in opgehevencats:
        subcatwijz = werkcat.subcategories()
        artwijz = werkcat.articles()
        if len(subcatwijz) == 0 and len(artwijz) ==0:
            wikipedia.output(u'Geen verandering nodig in ' + werkcat.title())
        else:
            gen = pagegenerators.CategorizedPageGenerator(werkcat, recurse = False)
            preloadingGen = pagegenerators.PreloadingGenerator(gen)
            for article in preloadingGen:
                catlib.change_category(article, werkcat, None,'[[Categorie:Wikipedia:Opgeheven categorie]] leeg houden')
            for subcategory in subcatwijz:
                catlib.change_category(subcategory, werkcat, None,'[[Categorie:Wikipedia:Opgeheven categorie]] leeg houden')    
def updatepage(page):
    site = wikipedia.getSite()
    updpage = wikipedia.Page(site, page)
    updpage.put("~~~~~", "Robot: Update tijdstempel")
redircats()
catschoon()
updatepage("Gebruiker:Gerbot/Catoexec")