ویکیپدیا:درخواستهای ربات/ردهساز بر پایه فهرست نام ترجمه شده/ردههای همنام با مقاله
این ربات برای نتیجه کوئریای که نام ردهها همنام با نام مقاله است کاربرد دارد.
روش کار[ویرایش]
در متن ربات نام رده های انگلیسی در ستون اول و در مقابل آنها نام ردههای فارسی قرار میگیرد (بدون پیشوند رده )
کد[ویرایش]
<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()