Utente:BimBot/Scripts: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
nuova versione!!!!! |
||
Riga 1:
Copiate gente, copiate! (<small>Che poi va a fuoco il computer...</small>) :-D
== <tt>sistemaredirect.py</tt> v. 3.0 ==
<pre>
################################################################
Riga 15:
def main():
args = wikipedia.handleArgs()
while 1:
redirectLinks = dict()
all = 0;
ic = inputchoice()
if ic == u'.':
break
if ic == u'P':
name = wikipedia.input(u'Inserisci il nome della pagina da cui ricavare i redirect [punto per terminare]:')
if name == u'.':
break
page = wikipedia.Page(wikipedia.getSite(), name)
redirectLinks = getlinkstoredirectstopage(page)
else:
name = wikipedia.input(u'Inserisci il nome del redirect [punto per terminare]:')
if name == u'.':
break
page = wikipedia.Page(wikipedia.getSite(), name)
redirectLinks[page.title()] = page.getReferences()
for i in redirectLinks:
print i
page = wikipedia.Page(wikipedia.getSite(), i)
dest = page.getRedirectTarget()
ref = redirectLinks[i]
for j in ref:
oldtext = j.get()
print j
lnks = sgamalink(i, oldtext)
for k in lnks:
if u'|' in k:
regex = u"\[\[%s\|(.*?)\]\]" % i
p = re.compile(regex, re.IGNORECASE)
lst = re.findall(p, oldtext)
choice = u"[[" + dest.title() + u"|" + lst[0] + u"]]"
else:
choice = linkchoice(dest.title(), i)
if choice == u'.':
exit()
newtext = sistema(oldtext, page.title(), choice)
wikipedia.showDiff(oldtext, newtext)
choice = wikipedia.inputChoice(u'Posso procedere?', ['Yes', 'No'], ['y', 'N'], 'N')
if choice in ['Y', 'y']:
wikipedia.setAction(u'Correggo i link che puntano al redirect "%s"' % page.title())
j.put(newtext)
wikipedia.stopme();
def getlinkstoredirectstopage(page):
try:
redirectLinks = dict()
ref = page.getReferences()
redirectList=list()
for i in ref:
if i.isRedirectPage():
redirectLinks[i.title()] = i.getReferences()
return redirectLinks;
except wikipedia.IsNotRedirectPage:
print page.isRedirectPage()
print u"Non e' un redirect!"
return 0
except wikipedia.NoPage:
print u'La pagina non esiste!'
return 0
def inputchoice():
choice = wikipedia.inputChoice(u"Vuoi inserire il nome di un redirect o di una pagina a cui linkano dei redirect? [punto per terminare]", [u'Redirect', u'Page', u'.'], [u'R', u'p', u'.'], u'R')
if choice == u'.':
return u'.'
elif choice in [u'P', u'p']:
return u'P'
else:
return u'R'
def linkchoice(newpage, oldpage):
scelte = [u"[[" + newpage + u"]]", u"[[" + newpage + u"|" + newpage[0].lower() + newpage[1:] + u"]]", u"[[" + newpage + u"|" + oldpage + u"]]", u"[[" + newpage + u"|" + oldpage[0].lower() + oldpage[1:] + u"]]", u'.']
sceltecopy = scelte
choice = wikipedia.inputChoice(u"Scegli una delle seguenti alternative per il link: [punto per terminare]", sceltecopy, [u'1', u'2', u'3', u'4', u'.'], u'1')
if choice == u'.':
return u'.'
return scelte[int(choice)-1][:len(scelte[int(choice)-1])-4]
def sgamalink(oldtitle, oldtext):
regex = u"\[\[%s(.*?)\]\]" % oldtitle
p = re.compile(regex, re.IGNORECASE)
lst = re.findall(p, oldtext)
return lst
def sistema(text, oldtitle, choice):
regex = u"\[\[%s.*?\]\]" % oldtitle
p = re.compile(regex, re.IGNORECASE)
text = re.sub(p, text, choice)
return text
if __name__==u"__main__":
main()
</pre>
|