Користувач:BunykBot

Матеріал з Вікіпідручника
Перейти до: навігація, пошук

Привіт. Я - робот користувача Bunyk. Люблю виконувати різні прості, але монотонні і нудні завдання.

Зміст

Інструкція [ред.]

Подвійні перенаправлення [ред.]

redirect.py double

Зайві перенаправлення [ред.]

  1. Замінює всі посилання на перенаправлення на прямі посилання.
  2. Складає список перенаправлень що не використовуються.
#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

Запитують стару назву категорії, а потім нову назву.