ویکی‌پدیا:درخواست‌های ربات/رده‌ساز بر پایه فهرست نام ترجمه شده/رده‌های هم‌نام با مقاله

این ربات برای نتیجه کوئری‌ای که نام رده‌ها هم‌نام با نام مقاله است کاربرد دارد.

روش کار

ویرایش

در متن ربات نام رده های انگلیسی در ستون اول و در مقابل آنها نام رده‌های فارسی قرار می‌گیرد (بدون پیشوند رده )

<syntaxhighlight lang="python">

  1. !/usr/bin/python
  2. -*- coding: utf-8 -*-
  3. Reza(User:reza1615), 2011
  4. Distributed under the terms of the CC-BY-SA 3.0 .

import catlib ,pagegenerators import wikipedia,query import codecs,time,string,re,query wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay() list=(u"Serres",u"سرس (یونان)")

def redirect_find( enlink):

   enlink=enlink.replace(u' ',u'_')
   ensite = wikipedia.getSite('en')
   params = {
       'action': 'query',
       'prop': 'info',
       'titles': enlink
   }
   categoryname = query.GetData(params,ensite, encodeTitle = True)
   try:
           fanamespace=categoryname[u'query'][u'pages']  
           if str(fanamespace).find(u'redirect')!=-1:
               wikipedia.output(u'it is redirect')
               return True
           else:
               return False    
   except:
           return True
           
           

def zwnj(txtTmp):

 txtTmp = re.sub(u'‌{2,}', u'‌', txtTmp)
 txtTmp = re.sub(u'‌(?![ئاآأإژزرذدوؤة‌بپتثجچحخسشصضطظعغفقکگلمنهیيًٌٍَُِّْٰٓٔ]|[\u0900-\u097f]|ֹ)', u, txtTmp)
 txtTmp = re.sub(u'(?<![ئبپتثجچحخسشصضطظعغفقکگلمنهیيًٌٍَُِّْٰٓٔ]|[\u0900-\u097F]|f|ֹ)‌', u, txtTmp)
 return txtTmp

def main():

   wikipedia.config.put_throttle = 0
   wikipedia.put_throttle.setDelay()
   textfa,texten=' ',' '
   for i in range(0,len(list),2):
       try:
           caten=unicode(list[i],'UTF8')
           catfa=unicode(list[i+1],'UTF8')
       except:
           caten=list[i]
           catfa=list[i+1]
       fatitle=catfa.replace('','').replace('',).strip()

textfa=u"

\n'

       passp=redirect_find(caten)
       if passp:

try: pageen = wikipedia.Page( wikipedia.getSite('en'),caten ) page = pageen.getRedirectTarget() if page.title()+u'es'==pageen.title() or page.title()+u's'==pageen.title(): fatitle+=u'‌ها' else: wikipedia.output(u'----------'+caten+u' was redirect so it passed!')

                   continue

fatitle= zwnj(fatitle)

       pagefa = wikipedia.Page(wikipedia.getSite('fa'),u'رده:'+fatitle)
       if not pagefa.exists():
            pagefa.put(textfa.strip(), u'ربات: ساختن رده بر پايه ویکی‌انگلیسی (کد)')
            wikipedia.output( u"done=" + catfa)


if __name__ == '__main__':

   try:
       main()
   finally:
       wikipedia.stopme()