ویکیپدیا:درخواستهای ربات/اصلاح میانویکی در ویکیداده
ظاهر
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Reza (User:reza1615)
# Distributed under the terms of the CC-BY-SA 3.0 .
# -*- coding: utf-8 -*-
import wikipedia,pagegenerators,sys
import category,query,login,config
resultdata=u'\n'
wikipedia.config.put_throttle = 0
wikipedia.put_throttle.setDelay()
faSite=wikipedia.getSite('fa')
enSite=wikipedia.getSite('en')
def englishdictionry( enlink ):
try:
enlink=unicode(str(enlink),'UTF-8').replace(u'[[',u'').replace(u']]',u'').replace(u'en:',u'').replace(u'fa:',u'')
except:
enlink=enlink.replace(u'[[',u'').replace(u']]',u'').replace(u'en:',u'').replace(u'fa:',u'')
if enlink.find('#')!=-1:
return False
if enlink==u'':
return False
enlink=enlink.replace(u' ',u'_')
site = wikipedia.getSite('en')
sitesecond= wikipedia.getSite('fa')
params = {
'action': 'query',
'prop': 'langlinks',
'titles': enlink,
'redirects': 1,
'lllimit':500,
}
try:
categoryname = query.GetData(params,site)
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']=='fa':
intersec=item[u'*']
break
result=intersec
if result.find('#')!=-1:
return False
return True
except:
return False
def login_wiki(mode):
if mode==1:
dataSite=wikipedia.getSite('wikidata','wikidata')
if mode==2:
dataSite=wikipedia.getSite('fa','wikipedia')
passwords='pass'
usernames='YourBot'
botlog=login.LoginManager(password=passwords,username=usernames,site=dataSite)
botlog.login()
lines={u"en:Category:2003 natural disasters":u"رده:بلایای_طبیعی_۲۰۰۳_(میلادی) ",
u"en:Category:2006 natural disasters":u"رده:بلایای_طبیعی_۲۰۰۶_(میلادی) ",
u"en:Category:2009 natural disasters":u"رده:بلایای_طبیعی_۲۰۰۹_(میلادی) ",
u"en:Category:2012 natural disasters":u"رده:بلایای_طبیعی_۲۰۱۲_(میلادی) ",
u"en:Category:1900 natural disasters":u"رده:بلایای_طبیعی_۱۹۰۰_(میلادی) "}
#login_wiki(1)
for line in lines:
if englishdictionry( line ):
continue
firstsec_page=wikipedia.Page(enSite,line)
wdata=wikipedia.DataPage(firstsec_page)
wikipedia.output(lines[line])
wdata_sec=wikipedia.DataPage(wikipedia.Page(faSite,lines[line]))
if wdata.exists():
if wdata_sec.exists():
wikipedia.output(u"Something is wrong, you need to merge "+wdata_sec.title()+u" with "+wdata.title())
else:
#try:
items=wdata.get()
wdata.setitem(summary=u"update item",items={'type': u'sitelink', 'site': 'fa', 'title': lines[line].replace(u'_',u' ')})
wdata.setitem(summary=u"update label",items={'type': u'item', 'label': 'fa', 'value': lines[line].replace(u'_',u' ')})
wikipedia.output(u"\03{lightblue}Wikidata is updated!\03{default}")
#except:
#wikipedia.output(u"\03{lightred}Category in wikidata had error or it dosen't have any item!\03{default}")
#pass