User:Misza13/browseCSD.py

This is a draft version of a pywikipedia script for assisting admins in the cleanup of the ever-backlogged CAT:CSD.

How it works:

  • For each page from CAT:CSD:
  • Get page's text and print it on user's screen
  • Ask if the page should be deleted
  • If the answer is positive:
  • Ask for a reason for deletion (shortcuts available)
  • Ask for confirmation
  • If confirmation is positive:
  • Delete the page
  • If it's not a talk page, check if there is one
  • If yes, ask if it should be deleted (under the standard G8 CSD)

  1. !/usr/bin/env python

import sys, os, time

sys.path.append(os.environ['HOME'] + '/pywikipedia')

import wikipedia, catlib, pagegenerators

rsnTrans = {

'a7': 'Article does not assert the importance or significance of its subject. (CSD A7)',

'db-bio': 'An article about a real person, group of people, band, club, company, or web content that does not assert the importance or significance of its subject. (CSD A7)',

}

if __name__ == '__main__':

try:

Site = wikipedia.getSite()

CSD = catlib.Category(Site,'Category:Candidates for speedy deletion')

genCSD = pagegenerators.CategoryPartPageGenerator(CSD)

for Page in genCSD:

txt = Page.get()

print '=' * 60

print txt

print '=' * 60

choice = wikipedia.inputChoice('Delete page?',

['yes','no','stop'],['y','n','s'],default='n')

if choice == 's': break

if choice == 'y':

confirm = 'n'

reason = ''

while confirm not in ['y','a']:

reason = wikipedia.input('Reason for deletion?')

if reason.lower() in rsnTrans.keys(): reason = rsnTrans[reason.lower()]

confirm = wikipedia.inputChoice('Delete %s with reason "%s"?' % (Page, reason),

['yes','no','abort'],['y','n','a'],default='y')

if confirm == 'y':

Page.delete(reason,False)

if not Page.isTalkPage():

TalkPage = Page.switchTalkPage()

if TalkPage.exists():

del_talk = wikipedia.inputChoice('Delete associated talk page?',

['yes','no'],['y','n'],default='y')

if del_talk == 'y':

TalkPage.delete('Orphaned talk page (WP:CSD G8)',False)

finally:

wikipedia.stopme()

browseCSD.py