پرش به محتوا

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

از ویکی‌پدیا، دانشنامهٔ آزاد

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

روش کار[ویرایش]

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

<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()