Don't put redirects in the same category as real app pages

This commit is contained in:
Ciaran Gultnieks 2013-10-09 14:39:00 +01:00
parent d2867a3192
commit 4e51a68cfa

View file

@ -43,10 +43,12 @@ def update_wiki(apps, apks, verbose=False):
""" """
print "Updating wiki" print "Updating wiki"
wikicat = 'Apps' wikicat = 'Apps'
wikiredircat = 'App Redirects'
import mwclient import mwclient
site = mwclient.Site((wiki_protocol, wiki_server), path=wiki_path) site = mwclient.Site((wiki_protocol, wiki_server), path=wiki_path)
site.login(wiki_user, wiki_password) site.login(wiki_user, wiki_password)
generated_pages = {} generated_pages = {}
generated_redirects = {}
for app in apps: for app in apps:
wikidata = '' wikidata = ''
if app['Disabled']: if app['Disabled']:
@ -185,24 +187,26 @@ def update_wiki(apps, apks, verbose=False):
if apppagename == pagename: if apppagename == pagename:
noclobber = True noclobber = True
if not noclobber: if not noclobber:
generated_pages[apppagename] = "#REDIRECT [[" + pagename + "]]\n[[Category:" + wikicat + "]]" generated_redirects[apppagename] = "#REDIRECT [[" + pagename + "]]\n[[Category:" + wikiredircat + "]]"
catpages = site.Pages['Category:' + wikicat] for tcat, genp in [(wikicat, generated_pages),
(wikiredircat, generated_redirects)]:
catpages = site.Pages['Category:' + tcat]
existingpages = [] existingpages = []
for page in catpages: for page in catpages:
existingpages.append(page.name) existingpages.append(page.name)
if page.name in generated_pages: if page.name in genp:
pagetxt = page.edit() pagetxt = page.edit()
if pagetxt != generated_pages[page.name]: if pagetxt != genp[page.name]:
print "Updating modified page " + page.name print "Updating modified page " + page.name
page.save(generated_pages[page.name], summary='Auto-updated') page.save(genp[page.name], summary='Auto-updated')
else: else:
if verbose: if verbose:
print "Page " + page.name + " is unchanged" print "Page " + page.name + " is unchanged"
else: else:
print "Deleting page " + page.name print "Deleting page " + page.name
page.delete('No longer published') page.delete('No longer published')
for pagename, text in generated_pages.items(): for pagename, text in genp.items():
if verbose: if verbose:
print "Checking " + pagename print "Checking " + pagename
if not pagename in existingpages: if not pagename in existingpages: