ویکیپدیا:درخواستهای ربات/ربات جایگزین کننده
ظاهر
این کد بر اساس یک الگو که در همه مجموعهای از مقالات هست به درون مقاله میرود و عبارتی را با عبارت دیگر جایگزین میکند.
مثال
- مجوز گنو-خود>GFDL-self
- مورد۱>مورد۲
- مورد۳>مورد۴
<syntaxhighlight lang="python" line start=1>
- !/usr/bin/python
- -*- coding: utf-8 -*-
import wikipedia as pywikibot import re from pywikibot import * from pagegenerators import *
def replacePagesLinked(site, refered, replaceWith, contains = ""):
""" This function replace occurance of a string with other thing on linked pages to a page """ mainPage = pywikibot.Page(site, refered) genFunc = ReferringPageGenerator(mainPage) pagesList = [] for page in genFunc: pagesList.append(page) pywikibot.output("Count of page that must retrived " + str(len(pagesList))) FromText = "%s" % (refered) ToText = replaceWith wikipedia.output("Replacing %s to %s" % (FromText, ToText)) for page in pagesList: try: content = page.get() content = content.replace(FromText, ToText) if (contains is not "") and (contains not in content): pywikibot.output(page.title() + " Skipped") continue except Exception, e: wikipedia.output(str(e)) page.put(content, u"ربات: جایگزینی %s به %s (کد)" % (refered, replaceWith)) pywikibot.output("Finished!")
def replaceDictionaryToAPage(site, templateName, replacingDictionary, showDiff = True):
""" This function replace texts in page retrieved from a category """ template = pywikibot.Page(site, templateName) genFunc = ReferringPageGenerator(template, onlyTemplateInclusion=True) wikipedia.output("Replacing a dictionary") for page in genFunc: ns = [pywikibot.getSite("fa", "wikipedia").namespace(6, all = True)] try: re.search(u'(%s)' % '|'.join(ns), page.get(), re.I).group(1) except AttributeError: continue try: oldContent = page.get() for i in replacingDictionary: content = oldContent.replace(i, replacingDictionary[i]) if showDiff is True: pywikibot.showDiff(oldContent, content) page.put(content, u"ربات: اصلاح پیوندها (کد)") except Exception, e: wikipedia.output(str(e)) pywikibot.output("Finished!")
def main():
site = pywikibot.getSite("fa", "wikipedia") config.put_throttle = 0 pywikibot.put_throttle.setDelay() wikipedia.output("Running scenario2") scenario2(site)
def scenario2(site):
replacingDictionary = {u"مجوز گنو-خود":u"GFDL-self",u"مورد۱":u"مورد۲",u"مورد۳":u"مورد۴" } replaceDictionaryToAPage(site, u"الگو:مجوز گنو-خود", replacingDictionary)
if __name__ == '__main__':
main()