Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Sen resumo de edición
Gallaecio (conversa | contribucións)
Sen resumo de edición
Liña 182:
<source lang="bash">
python2 core/scripts/replace.py -transcludes:"Praia" -fix:discapacidade -always
</source>
</div>
 
== <nowiki>[[adega (de viño)]]</nowiki> → <nowiki>[[adega (industria)]]</nowiki> ==
 
Ola, Gallaecio! Teño unha solicitude para o teu bot; poderías corrixir na Galipedia as ligazóns existentes cara a <nowiki>[[adega (de viño)]]</nowiki> e modificalas por <nowiki>[[adega (industria)]]</nowiki>? Cando estea avisa, para borrar a redirección co nome erróneo.
 
Un saúdo, e mil grazas!! --[[Usuario:Estevoaei|Estevoaei]] ([[Conversa usuario:Estevoaei|conversa]]) 20 de novembro de 2014 ás 11:04 (UTC)
 
: {{Feito}} ─ [[Usuario:Gallaecio|Gallaecio]]<sup>[[Conversa_Usuario:Gallaecio|E logo?]]</sup> 24 de novembro de 2014 ás 07:06 (UTC)
 
<div class="mw-collapsible mw-collapsed">
<source lang="python">
#!/usr/bin/env python2
# -*- coding:utf-8 -*-
 
"""
Este guión elimina todas as ligazóns a unha redirección e a continuación marca
dita redirección para borrado.
 
Debe pasárselle o nome da redirección como parámetro.
"""
 
 
from pywikibot import Bot
 
 
class ShydeNaGalipedia(Bot):
 
def __init__(self, redirect_page_name, **kwargs):
super(ShydeNaGalipedia, self).__init__(**kwargs)
from pywikibot import Site
self.site = Site("gl", "wikipedia", "Shyde")
self.redirect_page_name = redirect_page_name
 
 
def run(self):
 
import re
 
from pywikibot.page import Link, Page
from pywikibot.pagegenerators import PreloadingGenerator, \
ReferringPageGenerator
 
# Get redirect target.
redirect_page = Page(Link(self.redirect_page_name, source=self.site))
assert(redirect_page.isRedirectPage())
redirect_target = redirect_page.getRedirectTarget()
page_name_pattern = u"{}{}".format(
u"[{}{}]".format(
self.redirect_page_name[0].lower(),
self.redirect_page_name[0].upper()),
re.escape(self.redirect_page_name[1:])) \
.replace(u"\ ", u"[ _]")
link_re = re.compile(ur"\[\[ *{} *(\||\]\])".format(page_name_pattern))
 
# Get list of links to the specified page.
generator = ReferringPageGenerator(redirect_page)
generator = PreloadingGenerator(generator)
 
# Update links.
for page in generator:
old_page_content = page.get()
new_page_content = link_re.sub(ur"[[{}\1".format(
redirect_target.title()), old_page_content)
comment = u"As ligazóns a «{}» apuntan agora a «{}».".format(
self.redirect_page_name, redirect_target.title())
self.userPut(page=page, oldtext=old_page_content,
newtext=new_page_content, comment=comment,
show_diff=True)
 
# Assert that there are no more links.
generator = ReferringPageGenerator(redirect_page)
generator = PreloadingGenerator(generator)
remaining_links = list(generator)
if len(remaining_links) != 0:
print(u":: As seguintes páxinas aínda conteñen ligazóns a "
u"«{}»:".format(self.redirect_page_name))
print(u"\n".join([u"• {}".format(page.title())
for page in remaining_links]))
print(u":: Corrixa as páxinas da lista manualmente antes de "
u"marcar a redirección para borrado.")
from sys import exit
exit()
 
# Mark redirection page for removal.
comment = u"Esta páxina moveuse a «[[{}]]».".format(
redirect_target.title())
new_redirect_page_content = u"{{{{Lixo|{}}}}}".format(comment)
self.userPut(page=redirect_page,
oldtext=redirect_page.get(get_redirect=True),
newtext=new_redirect_page_content, comment=comment,
show_diff=True)
 
 
def main(argv):
bot = ShydeNaGalipedia(argv[0].decode(u"utf-8"))
bot.run()
 
 
 
if __name__ == "__main__":
from sys import argv
main(argv[1:])
</source>
</div>