# A pywikibot script to dump out support/oppose/neutral totals of any RfAs currently in progressimportreimportpywikibotfrompywikibotimportpagegeneratorsdefgetTotals(text):lines=text.splitlines();support=Falseoppose=Falseneutral=FalsenSupport=0nOppose=0nNeutral=0forlineinlines:if(re.match('^\s*=====Support=====\s*$',line)isnotNone):support=Trueoppose=Falseneutral=Falseif(re.match('^\s*=====Oppose=====\s*$',line)isnotNone):support=Falseoppose=Trueneutral=Falseif(re.match('^\s*=====Neutral=====\s*$',line)isnotNone):support=Falseoppose=Falseneutral=Trueif(re.match('^\s*=====General comments=====\s*$',line)isnotNone):support=Falseoppose=Falseneutral=Falseif(re.search('^\s*#[^:]',line)isnotNone):if(support):nSupport+=1if(oppose):nOppose+=1if(neutral):nNeutral+=1return(nSupport,nOppose,nNeutral)site=pywikibot.Site()rfaPage=list(site.allpages(prefix='Requests for adminship',namespace=4,total=1))[0]forrfainrfaPage.linkedPages(namespaces=4,content=True):result=re.match('Wikipedia:Requests for adminship/(.*)',rfa.title())ifresultisnotNone:rfaName=result.group(1)text=rfa.textif(re.search('{{RfA tally\|'+rfaName+'}}',text)isnotNone):totals=getTotals(text)print(rfaName+'=('+str(totals[0])+'/'+str(totals[1])+'/'+str(totals[2])+')')