本文整理汇总了Python中pywikibot.i18n.twhas_key函数的典型用法代码示例。如果您正苦于以下问题:Python twhas_key函数的具体用法?Python twhas_key怎么用?Python twhas_key使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了twhas_key函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: delete_1_broken_redirect
def delete_1_broken_redirect(self, redir_name, reason):
self.check_page_broken()
self.check_page()
redir_page = pywikibot.Page(self.site, redir_name)
# Show the title of the page we're working on.
# Highlight the title in purple.
pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
% redir_page.title())
try:
targetPage = redir_page.getRedirectTarget()
except pywikibot.IsNotRedirectPage:
pywikibot.output(u'%s is not a redirect.' % redir_page.title())
except pywikibot.NoPage:
pywikibot.output(u'%s doesn\'t exist.' % redir_page.title())
else:
try:
targetPage.get()
except pywikibot.NoPage:
if self.prompt(
u'Redirect target %s does not exist. Do you want to delete %s?'
% (targetPage.title(asLink=True),
redir_page.title(asLink=True))):
try:
redir_page.delete(reason, prompt = False)
except pywikibot.NoUsername:
if i18n.twhas_key(
targetPage.site.lang,
'redirect-broken-redirect-template') and \
i18n.twhas_key(targetPage.site.lang,
'redirect-remove-broken'):
pywikibot.output(
u"No sysop in user-config.py, put page to speedy deletion.")
content = redir_page.get(get_redirect=True)
### TODO: Add bot's signature if needed
### Not supported via TW yet
content = i18n.twtranslate(
targetPage.site.lang,
'redirect-broken-redirect-template'
) + "\n" + content
redir_page.put(content, reason)
except pywikibot.IsRedirectPage:
pywikibot.output(
u'Redirect target %s is also a redirect! Won\'t delete anything.'
% targetPage.title(asLink=True))
else:
#we successfully get the target page, meaning that
#it exists and is not a redirect: no reason to touch it.
pywikibot.output(
u'Redirect target %s does exist! Won\'t delete anything.'
% targetPage.title(asLink=True))
pywikibot.output(u'')
示例2: get_sd_template
def get_sd_template(self):
"""Look for speedy deletion template and return it.
@return: A valid speedy deletion template.
@rtype: str or None
"""
if self.getOption('delete') and not self.site.logged_in(sysop=True):
sd = self.getOption('sdtemplate')
if not sd and i18n.twhas_key(self.site,
'redirect-broken-redirect-template'):
sd = i18n.twtranslate(self.site,
'redirect-broken-redirect-template')
# TODO: Add bot's signature if needed (Bug: T131517)
# check whether template exists for this site
title = None
if sd:
template = extract_templates_and_params_regex_simple(sd)
if template:
title = template[0][0]
page = pywikibot.Page(self.site, title, ns=10)
if page.exists():
return sd
pywikibot.warning(
'No speedy deletion template {0}available.'
''.format('"{0}" '.format(title) if title else ''))
return None
示例3: delete_redirect
def delete_redirect(self, page, summary_key):
"""Delete the redirect page."""
assert page.site == self.site, (
'target page is on different site {0}'.format(page.site))
reason = i18n.twtranslate(self.site, summary_key)
if page.site.logged_in(sysop=True):
page.delete(reason, prompt=False)
elif i18n.twhas_key(page.site,
'redirect-broken-redirect-template'):
pywikibot.output(u"No sysop in user-config.py, "
u"put page to speedy deletion.")
try:
content = page.get(get_redirect=True)
except pywikibot.SectionError:
content_page = pywikibot.Page(page.site,
page.title(withSection=False))
content = content_page.get(get_redirect=True)
# TODO: Add bot's signature if needed (Bug: T131517)
content = i18n.twtranslate(
page.site,
'redirect-broken-redirect-template') + '\n' + content
try:
page.put(content, reason)
except pywikibot.PageSaveRelatedError as e:
pywikibot.error(e)
else:
pywikibot.output(
u'No speedy deletion template available')
示例4: has_valid_template
def has_valid_template(self, twtitle):
""""Check whether a template from translatewiki.net does exist on real
wiki. We assume we are always working on self.site
@param twtitle - a sting which is the i18n key
"""
if self._valid_template is None:
self._valid_template = False
if i18n.twhas_key(self.site, twtitle):
template_msg = i18n.twtranslate(self.site, twtitle)
template = re.findall(u'.*?{{(.*?)[|}]', template_msg)
if template:
title = template[0]
page = pywikibot.Page(self.site, title, ns=10)
self._valid_template = page.exists()
return self._valid_template
示例5: fix_1_double_redirect
def fix_1_double_redirect(self, redir_name):
if isinstance(redir_name, basestring):
redir = pywikibot.Page(self.site, redir_name)
else:
redir = redir_name
# Show the title of the page we're working on.
# Highlight the title in purple.
pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
% redir.title())
newRedir = redir
redirList = [] # bookkeeping to detect loops
while True:
redirList.append(u'%s:%s' % (newRedir.site.lang,
newRedir.title(withSection=False)))
try:
targetPage = newRedir.getRedirectTarget()
except pywikibot.IsNotRedirectPage:
if len(redirList) == 1:
pywikibot.output(u'Skipping: Page %s is not a redirect.'
% redir.title(asLink=True))
break # do nothing
elif len(redirList) == 2:
pywikibot.output(
u'Skipping: Redirect target %s is not a redirect.'
% newRedir.title(asLink=True))
break # do nothing
else:
pass # target found
except pywikibot.SectionError:
pywikibot.warning(
u"Redirect target section %s doesn't exist."
% newRedir.title(asLink=True))
except (pywikibot.CircularRedirect,
pywikibot.InterwikiRedirectPage) as e:
pywikibot.exception(e)
pywikibot.output(u"Skipping %s." % newRedir)
break
except pywikibot.BadTitle as e:
# str(e) is in the format 'BadTitle: [[Foo]]'
pywikibot.warning(
u'Redirect target %s is not a valid page title.'
% str(e)[10:])
break
except pywikibot.NoPage:
if len(redirList) == 1:
pywikibot.output(u'Skipping: Page %s does not exist.'
% redir.title(asLink=True))
break
else:
if self.getOption('always'):
pywikibot.output(
u"Skipping: Redirect target %s doesn't exist."
% newRedir.title(asLink=True))
break # skip if automatic
else:
pywikibot.warning(
u"Redirect target %s doesn't exist."
% newRedir.title(asLink=True))
except pywikibot.ServerError:
pywikibot.output(u'Skipping due to server error: '
u'No textarea found')
break
else:
pywikibot.output(
u' Links to: %s.'
% targetPage.title(asLink=True))
try:
mw_msg = targetPage.site.mediawiki_message(
'wikieditor-toolbar-tool-redirect-example')
except KeyError:
pass
else:
if targetPage.title() == mw_msg:
pywikibot.output(
u"Skipping toolbar example: Redirect source is "
u"potentially vandalized.")
break
# watch out for redirect loops
if redirList.count(u'%s:%s'
% (targetPage.site.lang,
targetPage.title(withSection=False))):
pywikibot.warning(
u'Redirect target %s forms a redirect loop.'
% targetPage.title(asLink=True))
break # FIXME: doesn't work. edits twice!
try:
content = targetPage.get(get_redirect=True)
except pywikibot.SectionError:
content_page = pywikibot.Page(
targetPage.site,
targetPage.title(withSection=False))
content = content_page.get(get_redirect=True)
if i18n.twhas_key(
targetPage.site,
'redirect-broken-redirect-template') and \
i18n.twhas_key(targetPage.site,
'redirect-remove-loop'):
pywikibot.output(u"Tagging redirect for deletion")
# Delete the two redirects
content = i18n.twtranslate(
#.........这里部分代码省略.........
示例6: delete_1_broken_redirect
def delete_1_broken_redirect(self, redir_name):
if isinstance(redir_name, basestring):
redir_page = pywikibot.Page(self.site, redir_name)
else:
redir_page = redir_name
# Show the title of the page we're working on.
# Highlight the title in purple.
pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
% redir_page.title())
try:
targetPage = redir_page.getRedirectTarget()
except pywikibot.IsNotRedirectPage:
pywikibot.output(u'%s is not a redirect.' % redir_page.title())
except pywikibot.NoPage:
pywikibot.output(u'%s doesn\'t exist.' % redir_page.title())
else:
try:
targetPage.get()
except pywikibot.BadTitle as e:
pywikibot.warning(
u'Redirect target %s is not a valid page title.'
% str(e)[10:])
pass
except pywikibot.InvalidTitle:
pywikibot.exception()
pass
except pywikibot.NoPage:
movedTarget = None
try:
movedTarget = targetPage.moved_target()
except pywikibot.NoMoveTarget:
pass
if movedTarget:
if not movedTarget.exists():
# FIXME: Test to another move
pywikibot.output(u'Target page %s does not exist'
% (movedTarget))
elif redir_name == movedTarget.title():
pywikibot.output(u'Target page forms a redirect loop')
else:
pywikibot.output(u'%s has been moved to %s'
% (redir_page, movedTarget))
reason = i18n.twtranslate(self.site,
'redirect-fix-broken-moved',
{'to': movedTarget.title(
asLink=True)})
content = redir_page.get(get_redirect=True)
redir_page.set_redirect_target(
movedTarget, keep_section=True, save=False)
pywikibot.showDiff(content, redir_page.text)
pywikibot.output(u'Summary - %s' % reason)
if self.user_confirm(
u'Redirect target %s has been moved to %s.\n'
u'Do you want to fix %s?'
% (targetPage, movedTarget, redir_page)):
try:
redir_page.save(reason)
except pywikibot.NoUsername:
pywikibot.output(u"Page [[%s]] not saved; "
u"sysop privileges required."
% redir_page.title())
pass
except pywikibot.LockedPage:
pywikibot.output(u'%s is locked.'
% redir_page.title())
pass
elif self.getOption('delete') and self.user_confirm(
u'Redirect target %s does not exist.\n'
u'Do you want to delete %s?'
% (targetPage.title(asLink=True),
redir_page.title(asLink=True))):
reason = i18n.twtranslate(self.site,
'redirect-remove-broken')
if self.site.logged_in(sysop=True):
redir_page.delete(reason, prompt=False)
else:
assert targetPage.site == self.site, (
u'target page is on different site %s'
% targetPage.site)
if i18n.twhas_key(self.site,
'redirect-broken-redirect-template'):
pywikibot.output(u"No sysop in user-config.py, "
u"put page to speedy deletion.")
content = redir_page.get(get_redirect=True)
# TODO: Add bot's signature if needed
# Not supported via TW yet
content = i18n.twtranslate(
targetPage.site,
'redirect-broken-redirect-template'
) + "\n" + content
try:
redir_page.put(content, reason)
except pywikibot.PageSaveRelatedError as e:
pywikibot.error(e)
else:
pywikibot.output(
u'No speedy deletion template available')
else:
pywikibot.output(u'Cannot fix or delete the broken redirect')
except pywikibot.IsRedirectPage:
#.........这里部分代码省略.........