Користувач: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
Запитують стару назву категорії, а потім нову назву.