User:Nickolay/Add external links bot
From MDC
A pywikipedia-based bot for adding external redirects.
"""
Add an external redirect link to a category.
External redirects is a special feature installed on developer.mozilla.org
"""
__version__="0.1"
__author__="Nickolay Ponomarev <asqueella@gmail.com>"
import wikipedia
import logging
logger = logging.getLogger("add_external_link")
logging.basicConfig(level=logging.DEBUG)
# set to True to avoid changing anything in the wiki (useful for test runs)
dontMakeChanges = False
def addExternalLink(url, pageName, categories):
"""
Creates a page at [[<pageName> (external)]] with a redirect to the specified
URL and the specified categories, i.e.:
#redirect [[url]] [[Category:<categories[0]>]] [[Category:<categories[1]>]] <...>
"""
def wrap(text):
"Make an inner-wiki link to 'text'"
return "[[" + text + "]]"
categoriesText = " ".join([wrap("Category:" + cat) for cat in categories])
articleText = "#redirect " + wrap(url)+ " " + categoriesText
logger.info(articleText)
page = wikipedia.Page(wikipedia.getSite(), pageName)
if not dontMakeChanges:
page.put(articleText, articleText, True, False)
if __name__ == "__main__":
try:
addExternalLink("http://devedge-temp.mozilla.org/viewsource/2001/xbl/", "XBL article at DevEdge (external)", ["XBL"])
except Exception, e:
logger.error(e)
wikipedia.stopme()