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

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

روش کار ویرایش

این ربات عنوان‌هایی که به در فهرست تکراری باشند را حذف می‌کند و موارد باقی مانده را به کمک میان‌ویکی در صورت داشتن مقاله ترجمه نام می‌کند (دقت ربات شاید ۱۰۰٪ نباشد)

شروع به کار ویرایش

برای شروع به کار مثلا در فهرست اینجا موارد موجود در جدول بالا را در متغیر repeted_words قرار می‌دهیم و همچنین نام صفحه‌هایی که برای اجرای ربات مد نظرمان هست را در wikifa قرار می‌دهیم.

این ربات نیاز به هیچ آرگومانی ندارد

نتیجه کار این می‌شود. <syntaxhighlight lang="python">

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

import catlib ,pagegenerators import wikipedia import codecs,time,string,re from dictionaryV import dict,word import query wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay() countw = 0 wikifa = ( u'کاربر:Reza1615/airport01',

         u'کاربر:Reza1615/airport0355',
         u'کاربر:Reza1615/airport02',
         u'کاربر:Reza1615/airport01' )

def englishdictionry( enlink ,firstsite,secondsite):

   enlink=enlink.replace(u' ',u'_')
   site = wikipedia.getSite(firstsite)
   params = {
       'action': 'query',
       'prop': 'langlinks',
       'titles': enlink,
       'redirects': 1,
       'lllimit':500,
   }
   try:
       categoryname = query.GetData(params,site, encodeTitle = True)  
       for item in categoryname[u'query'][u'pages']:
           case=categoryname[u'query'][u'pages'][item][u'langlinks']
       for item in case:
           if item[u'lang']==secondsite:
               intersec=item[u'*']
               break
       intersec=intersec.replace(u'_',u' ')    
       return u' '+intersec.split('(')[0]+u' --ترجمه ربات--'
   except:
       enlink=enlink.replace(u'_',u' ')      
       return enlink

repeted_words=[u'پایگاه نیروی هوایی',

               u'پایگاه هوایی',
               u'فرودگاه تک‌بانده',
               u'محله هوایی',
               u'فرودگاه صحرایی',
               u'پارک پروازی',
               u'پایگاه نیروی هوایی',
               u'فرودگاه شهری',
               u'فرودگاه شهرستان',
               u'بالگردگاه',
               u'فرودگاه محلی',
               u'فرودگاه محلی شهرستان',
               u'فرودگاه صحرایی ارتش',
               u'فرودگاه آبی',
               u'پایگاه آب‌نشین',
               u'فرودگاه',
               u'بین‌المللی']

for fasource in wikifa:

   linefa=
   site = wikipedia.getSite( 'fa' )
   bpage = wikipedia.Page( site,fasource )
   try:
       text = bpage.get()
   except wikipedia.IsRedirectPage:
       enpage = bpage.getRedirectTarget()
       try:
           text = enpage.get()
       except:
           continue    
   textfa='\n'
   for line in text.split( '\n' ):
       passport=True
       lineen=line    
       for items in repeted_words:
           lineen=lineen.replace(items,u)
       linefa=englishdictionry( lineen.strip() ,'en','fa')
       wikipedia.output(linefa)    
       if linefa==lineen.strip():
          textfa+=line+u'\n'
          continue
       else:
           linefinall=line.replace(lineen,linefa)
           linefinall=linefinall.replace(u'  ',u' ')
           wikipedia.output(linefa)    
           textfa+=linefinall+u'\n' 
       linefa=    
       
   wikipedia.output( u"Loading %s..." % bpage.title() )
   bpage.put( textfa.strip(),comment = u'ربات:ترجمه بر پایه میان‌ویکی',watchArticle = None,minorEdit = True )