Користувач:BunykBot
Матеріал з Вікіпідручника
Привіт. Я - робот користувача Bunyk. Люблю виконувати різні прості, але монотонні і нудні завдання.
Зміст |
Інструкція [ред.]
Подвійні перенаправлення [ред.]
redirect.py double
Зайві перенаправлення [ред.]
- Замінює всі посилання на перенаправлення на прямі посилання.
- Складає список перенаправлень що не використовуються.
#coding:utf-8 import wikipedia import pagegenerators import codecs import re import sys def subst_link(text,from_link,to_link): def uplow(ch): return ch.upper()+ch.lower() if from_link: from_link = re.sub(r'([\[\]\(\)\?\*\$\^\\])',r'\\\1',from_link) # escape []()\ print from_link fl = '['+uplow(from_link[0])+u']' if len(from_link)>1: from_link = fl + from_link[1:] else: from_link = fl from_link = re.sub('\ ','[_ ]',from_link) text = re.sub(r'\[\['+from_link+r'\]\]',r'[['+to_link+r']]',text) text = re.sub(r'\[\['+from_link+r'([\|#][^\]]*)\]\]',r'[['+to_link+r'\1]]',text) return text def make_links_not_to_redirects(): gen = pagegenerators.AllpagesPageGenerator(includeredirects='only') for page in gen: title = page.title() print title target = page.getRedirectTarget().title() for ref in page.getReferences(): if ref.isRedirectPage(): continue print '\033[91mReplace',title,'to',target,'in',ref.title(),'\033[0m' text = ref.get() changed = subst_link(text,title,target) wikipedia.showDiff(text,changed) ref.put(changed,comment = u'Будемо посилатись прямо на статтю' ) def list_links_to_remove(fn): f = codecs.open(fn,'a','utf-8') gen = pagegenerators.AllpagesPageGenerator(includeredirects='only') for page in gen: refs = list(page.getReferences()) if len(refs)==0: f.write('# [['+page.title()+']]\n') f.close() def list_pages(): gen = pagegenerators.AllpagesPageGenerator(includeredirects=True) for page in gen: print page.title() if __name__=="__main__": list_pages() sys.exit() list_links_to_remove("/home/bunyk/Desktop/list.txt") make_links_not_to_redirects() wikipedia.stopme() sys.exit() text = u"""[[1#sdf|asdf]] # [[Руська мова?#Заууаги шодо прауописа|Заууаги шодо]] * [[Пошук істини (основи філософії)]] [[Файл:00%.png]] [[1#sdf]] [[1|asdf]] """ changed = subst_link(text, u"Руська мова?", "12") wikipedia.showDiff(text,changed)
Перейменовує категорії [ред.]
category.py move
Запитують стару назву категорії, а потім нову назву.