User:Yinweichen/make redirect.py
外观
# -*- coding: utf-8 -*-
# Winston Yin 2014-12-20
# 檢查不同譯名的條目名是否存在,如果存在則建立重定向。
import pywikibot
# source: page to be created
# targets: list of alternate page names
# simplified: simplified chinese of source
def make_redirect(source, targets, simplified):
global site
page = pywikibot.Page(site, unicode(source, 'utf_8'))
exists = page.exists()
# Simplified version needs no redirecting
if not exists:
if pywikibot.Page(site, unicode(simplified, 'utf_8')).exists():
exists = True
source = simplified
page = pywikibot.Page(site, unicode(source, 'utf_8'))
# Source page exists?
if exists:
isredirect = page.isRedirectPage()
if isredirect:
target_title = page.getRedirectTarget().title().encode('utf_8')
print(source + ' exists and redirects to ' + target_title + '.')
else:
print(source + ' is the main article.')
else:
target = ''
# Check if pages with alternate names exist
for t in targets:
tpage = pywikibot.Page(site, unicode(t, 'utf_8'))
if tpage.exists():
target = t
break
if target != '':
if tpage.isRedirectPage():
target_of_target = tpage.getRedirectTarget().title().encode('utf_8') # Get to the root of redirect
else:
target_of_target = target
print(source + ' does not exist. Redirecting to ' + target_of_target + '.')
outtext = '#redirect[[' + target_of_target + ']]'
page.text = unicode(outtext, 'utf_8')
page.save()
else:
print('No corresponding page for ' + source + ' exists.')
site = pywikibot.Site('zh', 'wikipedia')
for i in range(1, 433):
source = '開普勒' + str(i) + 'd'
targets = ['克卜勒' + str(i) + 'd']
simplified = '开普勒' + str(i) + 'd'
make_redirect(source, targets, simplified)