ویکیپدیا:درخواستهای ربات/ردهساز بر پایه فهرست نام ترجمه شده/ردههای همنام با مقاله
این ربات برای نتیجه کوئریای که نام ردهها همنام با نام مقاله است کاربرد دارد.
روش کار
ویرایشدر متن ربات نام رده های انگلیسی در ستون اول و در مقابل آنها نام ردههای فارسی قرار میگیرد (بدون پیشوند رده )
کد
ویرایش<syntaxhighlight lang="python">
- !/usr/bin/python
- -*- coding: utf-8 -*-
- Reza(User:reza1615), 2011
- 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()