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

<syntaxhighlight lang="python">

  1. !/usr/bin/python
  2. -*- coding: utf-8 -*-
  3. Distributed under the terms of the CC-BY-SA 3.0 .
  4. Reza (User:Reza1615) Code structure + Developing the code

import re,wikipedia,login faSite = wikipedia.getSite('fa') wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay()

  1. ----------------

YourAcountPywikipediaPath='/data/project/youraccount/pywikipedia' def login_wiki():

   try:
       password_wiki = open(YourAcountPywikipediaPath+"/passfile", 'r')
   except:
       password_wiki = open(wikipedia.config.datafilepath(config.password_file), 'r')
   password_wiki=password_wiki.read().replace('"',).strip()    
   passwords=password_wiki.split(',')[1].split(')')[0].strip()
   usernames=password_wiki.split('(')[1].split(',')[0].strip()
   botlog=login.LoginManager(password=passwords,username=usernames,site=faSite)
   botlog.login()

def getlinks(BadLink,correctLink):

       try:
           page = wikipedia.Page(faSite,BadLink)
           linktos=page.getReferences()
       except:
           return True
       for page in linktos:
               if u'ویکی‌پدیا:تابلوی اعلانات ربات‌ها' in page.title():
                   continue
               try:
                   text=page.get()
               except:
                   continue
               wikipedia.output(u'checking '+page.title()+u' .....')   
               text=text.replace(u'\r',u)
               text2=text
               for i in [ur'شهرستان',ur'دهستان',ur'استان',ur'بخش']:
                   BadLink2=re.sub(ur'^'+i+ur' ',ur,BadLink)
                   correctLink2=re.sub(ur'^'+i+ur' ',ur,correctLink)
                   if BadLink2!=BadLink:
                       break
               if text.find(BadLink)!=-1 or text.find(BadLink2)!=-1:  
                       text2=text2.replace(u''+BadLink+u'',u''+correctLink+u'').replace(u'[['+BadLink+u'|',u'[['+correctLink+u'|').replace(u'\r',u)
                       text2=text2.replace(u''+BadLink+u'',u''+correctLink+u'').replace(u'[['+BadLink+u'|',u'[['+correctLink+u'|')
                       text2=text2.replace(u''+BadLink+u' ',u''+correctLink+u'').replace(u'[['+BadLink+u' |',u'[['+correctLink+u'|')
                       text2=text2.replace(u''+BadLink+u' ',u''+correctLink+u'').replace(u'[['+BadLink+u' |',u'[['+correctLink+u'|')
                       text2=text2.replace(u''+BadLink+u' ',u''+correctLink+u'').replace(u'[['+BadLink+u' |',u'[['+correctLink+u'|')
                       #-------------------------------------------for cats-----------------------------------
                       text2=text2.replace(u''+BadLink+u'',u''+correctLink+u'').replace(u'[[:'+BadLink+u'|',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u' '+BadLink+u'',u''+correctLink+u'').replace(u'[[: '+BadLink+u'|',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u' '+BadLink+u' ',u''+correctLink+u'').replace(u'[[: '+BadLink+u' |',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u''+BadLink+u' ',u''+correctLink+u'').replace(u'[[:'+BadLink+u' |',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u''+BadLink+u' ',u''+correctLink+u'').replace(u'[[:'+BadLink+u' |',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u' '+BadLink+u' ',u''+correctLink+u'').replace(u'[[: '+BadLink+u' |',u'[[:'+correctLink+u'|')
                       text2=text2.replace(u'='+BadLink2,u'= '+correctLink2).replace(u'= '+BadLink2,u'= '+correctLink2).replace(u'=  '+BadLink2,u'= '+correctLink2)
                       text2=text2.replace(u'=‌'+BadLink2,u'= '+correctLink2).replace(u'=‌ '+BadLink2,u'= '+correctLink2).replace(u'=‌  '+BadLink2,u'= '+correctLink2).replace(u'= ‌'+BadLink2,u'= '+correctLink2).replace(u'=  ‌'+BadLink2,u'= '+correctLink2)
                       if text2.find(correctLink)==-1:
                           wikipedia.output(u'\03{lightblue}could not find any link\03{default}')
                       if text!=text2:
                           try:
                               page.put(text2,u'ربات:اصلاح پیوند به تغییرمسیر نامحتمل  '+BadLink+u' > '+correctLink+u'')
                               wikipedia.output(u'\03{lightgreen}the page '+page.title()+u' had replcae item '+BadLink+u' > '+correctLink+u'\03{default}')
                           except:
                               wikipedia.output(u'\03{lightred}the page '+page.title()+u' could not replaced so it passed\03{default}')
                               continue
               else:
                    wikipedia.output(u'\03{lightred}could not find andy link\03{default}')        
       return True


def main():

   my_list={u"استان کهگیلویه وبویراحمد":u"استان کهگیلویه و بویراحمد",
   u"دهستان رویدر":u"دهستان روئیدر",
   
   }
   for case in my_list:
       result= getlinks(case,my_list[case])

login_wiki() main()