ویکیپدیا:درخواستهای ربات/حذف نشانیهای اینترنتی موجود در فهرست سیاه ویکیپدیا
این کد نشانیهای اینترنتیای که در مدیاویکی:Spam-blacklist و meta:Spam_blacklist باشند را حذف میکند.
- مواردی را که کد نمیتواند حذف کند
بعضی از نشانیها را کد توانایی حذف آن را ندارد به دلایل زیر
- نحوهٔ قرارگیری نشانی در صفحه برای ربات قابل تشخیص نیست.
- به دلیل کاربرد متعدد و مکرر از نشانیهای موجود در فهرست سیاه هر ویرایشی توسط پالایه فهرست سیاه متوقف میشود و باید همهٔ نشانیها در یک ویرایش حذف شوند.
ربات مواردی را که توانایی حذفشان را ندارد در Spam_list.txt ذخیره میکند.
کد
[ویرایش]<syntaxhighlight lang="python">
- !/usr/bin/python
- -*- coding: utf-8 -*-
- Distributed under the terms of the CC-BY-SA 3.0 .
- Reza (User:Reza1615)
import wikipedia,query,re,codecs faSite = wikipedia.getSite('fa') wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay()
def get_url(my_url,ns):
dict={} my_url=my_url.replace(u' ',u'_') params = { 'action': 'query', 'list': 'exturlusage', 'euquery': my_url, 'eulimit':500, } Url_list = query.GetData(params,faSite) wikipedia.output(u'>>>'+my_url) #wikipedia.output(u'>>>'+str(Url_list)) if u'query' in str(Url_list) and u'exturlusage' in str(Url_list): for item in Url_list[u'query'][u'exturlusage']: Title=item[u'title'] adress=item[u'url'] if ns==1000: if item[u'ns']!=4: dict[Title]=adress if ns==0: if item[u'ns']==0: dict[Title]=adress return dict
def remove_link(title,urls,notremoved):
wikipedia.output(u'\03{lightyellow}---------'+title+u'---------\03{default}') fapage=wikipedia.Page(faSite,title) for url in [urls,urls.replace(ur'http://',u),urls.replace(ur'https://',u),urls.replace(ur'https://',ur'http://'),urls.replace(ur'http://',ur'https://')]: fa_txt=fapage.get().replace(u' '+url,url).replace(url+u' ',url).replace(u' '+url,url).replace(url+u' ',url) fa_txt=fa_txt.replace(u'\n*',u'\n* ').replace(u'\n* ',u'\n* ').replace(u'\n#',u'\n# ').replace(u'\n# ',u'\n# ') fa_txt_old=fa_txt fa_txt=fa_txt.replace(u'example.com',u) fa_txt=fa_txt.replace(u'[۱]',u) if u'['+url in fa_txt: our_link=u'['+url+fa_txt.split(u'['+url)[1].split(u']')[0]+u']' wikipedia.output(our_link+u'----------------') fa_txt=fa_txt.replace(u'\n* '+our_link+u'\n',u'\n').replace(u'\n* '+our_link,u).replace(u'\n# '+our_link,u).replace(u'* '+our_link+u'\n',u).replace(u'\n# '+our_link+u'\n',u'\n').replace(u'('+our_link+u')',u).replace(our_link+u'\n',u).replace(our_link,u) fa_txt=fa_txt.replace(u'[]',u).replace(u'[ ]',u)
elif u'|'+url+u'}' in fa_txt:
fa_txt=fa_txt.replace(u'|'+url+u'}',u'|}')
elif u'|'+url+u'|' in fa_txt:
fa_txt=fa_txt.replace(u'|'+url+u'|',u'| |')
elif u'{'+url+u'|' in fa_txt:
fa_txt=fa_txt.replace(u'{'+url+u'|',u'{ |')
elif u'{'+url+u'}' in fa_txt:
fa_txt=fa_txt.replace(u'{'+url+u'}',u)
elif u'\n* '+url+u'\n' in fa_txt:
fa_txt=fa_txt.replace(u'\n* '+url+u'\n',u'\n')
elif u'\n# '+url+u'\n' in fa_txt:
fa_txt=fa_txt.replace(u'\n# '+url+u'\n',u'\n')
elif u'='+url in fa_txt:
fa_txt=fa_txt.replace(u'='+url,u'=')
elif url in fa_txt:
wikipedia.output(u'\03{lightred}Page ='+title+u' is difficult Url='+url+u'\03{default}')
else:
wikipedia.output(u'\03{lightblue}Some thing is wrong the page does not have Url\03{default}')
if fa_txt!=fa_txt_old:
fa_txt=fa_txt.replace(u'خطای یادکرد: برچسبهای <ref>
یافته شد که درونشان محتوایی نبود. یادکرد منبع باید بین برچسبها قرار گیرد. (صفحهٔ راهنما را مطالعه کنید.).
',u).replace(u'خطای یادکرد: برچسبهای <ref>
یافته شد که درونشان محتوایی نبود. یادکرد منبع باید بین برچسبها قرار گیرد. (صفحهٔ راهنما را مطالعه کنید.).
',u).replace(u'خطای یادکرد: برچسبهای <ref>
یافته شد که درونشان محتوایی نبود. یادکرد منبع باید بین برچسبها قرار گیرد. (صفحهٔ راهنما را مطالعه کنید.).
',u).replace(u'خطای یادکرد: برچسبهای <ref>
یافته شد که درونشان محتوایی نبود. یادکرد منبع باید بین برچسبها قرار گیرد. (صفحهٔ راهنما را مطالعه کنید.).
',u).replace(u'خطای یادکرد: برچسبهای <ref>
یافته شد که درونشان محتوایی نبود. یادکرد منبع باید بین برچسبها قرار گیرد. (صفحهٔ راهنما را مطالعه کنید.).
',u).replace(u'[۲]',u).replace(u'[۳]',u).replace(u'[۴]',u).replace(u'[۵]',u).replace(u'[۶]',u).replace(u'[۷]',u)
try: fapage.put(fa_txt,u'ربات:حذف نشانیهای موجود در مدیاویکی:Spam-blacklist یا meta:pam_blacklist یا نشانی اسپم') except: addtolist=u'\n# '+title+u' > ['+url+u']' if not addtolist in notremoved: notremoved=notremoved+addtolist pass else: wikipedia.output(u'\03{lightred}Bot could not remove the link! Page ='+title+u' is difficult Url='+url+u'\03{default}') addtolist=u'\n# '+title+u' > ['+url+u']' if not addtolist in notremoved: notremoved=notremoved+addtolist return notremoved
fapage=wikipedia.Page(faSite,u'مدیاویکی:Spam-blacklist') Black_text=fapage.get().replace(u'\r',u)
metaSite = wikipedia.getSite('meta',fam='meta') metapage=wikipedia.Page(metaSite,u'Spam_blacklist') Black_text2=metapage.get().replace(u'\r',u) Black_text+=u'\n'+Black_text2
notremoved=u'\n' for line in Black_text.split(u'\n'):
if u'#' in line or u'{' in line or u'[' in line or u'<' in line or u'>' in line: continue my_url=line.replace(u'\\b',u).replace(u"\\",u"").replace(u"\:",u":").replace(u"\.",u".") dict=get_url(my_url,1000) for title in dict: notremoved=remove_link(title,dict[title],notremoved)
with codecs.open(u'Spam_list.txt' ,mode = 'w',encoding = 'utf8' ) as f:
f.write(notremoved)