ویکیپدیا:درخواستهای ربات/ربات تصحیح غلط نگارشی/ویرایش سوم
<syntaxhighlight lang="python">
- !/usr/bin/python
- -*- coding: utf-8 -*-
- BY: Z (User:ZxxZxxZ on fa.wikipedia)
- BY: رضا (User:reza1615 on fa.wikipedia)
- Distributed under the terms of the CC-BY-SA 3.0 .
""" This bot will make direct text replacements. It will retrieve information on which pages might need changes either from an XML dump or a text file, or only change a single page.
You can run the bot with the following commandline parameters:
-file - Work on all pages given in a local text file.
Will read any wiki link and use these articles. Argument can also be given as "-file:filename".
-cat - Work on all pages which are in a specific category.
Argument can also be given as "-cat:categoryname".
-page - Only edit a specific page.
Argument can also be given as "-page:pagetitle". You can give this parameter multiple times to edit multiple pages.
-ref - Work on all pages that link to a certain page.
Argument can also be given as "-ref:referredpagetitle".
-filelinks - Works on all pages that link to a certain image.
Argument can also be given as "-filelinks:ImageName".
-links - Work on all pages that are linked to from a certain page.
Argument can also be given as "-links:linkingpagetitle".
-start - Work on all pages in the wiki, starting at a given page. Choose
"-start:!" to start at the beginning. NOTE: You are advised to use -xml instead of this option; this is meant for cases where there is no recent XML dump.
-except:XYZ - Ignore pages which contain XYZ. If the -regex argument is given,
XYZ will be regarded as a regular expression.
-summary:XYZ - Set the summary message text for the edit to XYZ, bypassing the
predefined message texts with original and replacements inserted.
-template:XYZ- -blog: -checking for blog sources. if it is in page it will sent page link to defined address -source - checking the articles sources . if it doesn't have . it will send page link to defined address -namespace:n - Number of namespace to process. The parameter can be used
multiple times. It works in combination with all other parameters, except for the -start parameter. If you e.g. want to iterate over all user pages starting at User:M, use -start:User:M.
-always - Don't prompt you for each replacement other: -
NOTE: Only use either -xml or -file or -page, but don't mix them.
Examples:
behsaz.py -start:! برای تمام صفحات ویکی
or
behsaz.py -page:آرامگاه کورش
""" __version__ = '$Id: Rezabot.py 2011-04-30 v2.0$'
import wikipedia,sys import pagegenerators import re, os, codecs, catlib
txtTmp = u msg = u'ربات: تصحیح کننده اشتباهات نگارشی %s' faChars = u'ءاآأإئؤبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی' faNums = u'۰۱۲۳۴۵۶۷۸۹' arNums = u'٠١٢٣٤٥٦٧٨٩' enNums = u'0123456789'
def datacorrection (txtTmp):
#e: نام الگوها
txtTmp=txtTmp.replace(u'',u'').replace(u'',u'').replace(u'',u'').replace(u' ——— ',u'—').replace(u'—',u'–').replace(u'—',u'—').replace(u'–',u'–').replace(u' • ',u' • ').replace(u' · ',u' · ').replace(u' · ',u' · ').replace(u'
![]() | این مقاله به هیچ منبع و مرجعی استناد نمیکند. |
',u'
![]() | این مقاله به هیچ منبع و مرجعی استناد نمیکند. |
').replace(u'
![]() | این مقاله به هیچ منبع و مرجعی استناد نمیکند. |
',u'
![]() | این مقاله به هیچ منبع و مرجعی استناد نمیکند. |
')
txtTmp=re.sub(ur'\[\[([Ii]mage|[Ff]ile|تصویر)\:', u'[[پرونده:', txtTmp) txtTmp=re.sub(ur'الگو:(انگلیسی)', ur'pp\1\2\3–\4', txtTmp) txtTmp=re.sub(ur'(صفحه ?\= ?|صفحات ?\= ?|صص ?[\.\=] ?)( |\=)(['+faNums+u']+)(['+faNums+ur']+)–\2(['+faNums+u']+)(?=}})', ur'صص\1\2\3–\4', txtTmp)
#SPC: به txtTmp=re.sub(ur'(?<=\s)(ب|به)(?=دست|شکل[ی ]|گونه|طور[ی ]|صورت|قدر[ی ]|نظر |دلا?یل[ی ]|سبب |عل[تل][ی ]|وسیله|واسطه|گفته[ٔ ]|شمار |حساب |عنوان|عبارت|وجود|دنیا)',u'به ',txtTmp) txtTmp=re.sub(ur'(?<=\s)(ب|به )(?=[تک]ندی|ویژه|خاطر|ناچار|تدریج|زودی|تازگی|سادگی|آسانی|سهولت|راحتی|دشواری|زیبایی|راستی|درستی|روشنی|تنها[ئی]ی|مرور|نرمی|سختی|آرامی|آهستگی|سرعت|شدت|دقت|کرّات|ندرت|وفور |اصطلاح|اجمال|اختصار|صراحت|وضوح|تلویح|تفصیل|اجبار|اختیار|اشتباه|تصادف|طبع|یقین|واقع )',u'به',txtTmp) txtTmp=re.sub(ur'(?<=\s)به[ ](?=ذاته|حمدالله|لاتشبیه|لاشک |سزایی |عینه |نفسه |شخصه )',u'ب',txtTmp) txtTmp=re.sub(ur'(رو|منزل|جا)[ ]?(ب|به )\1',ur'\1به\1',txtTmp)
#SPC: هم/هیچ/چه/که/آن/همین/چنین/ها txtTmp=re.sub(ur'(?<=\s)هم[ ](?=چن[یا]ن|دیگر|راه|زاد|سایه)',ur'هم',txtTmp) txtTmp=re.sub(u'هیچ ?(?=یک|کدام|کس)',u'هیچ',txtTmp) txtTmp=re.sub(u'چه[ ](?=قدر|گونه|طور)',u'چ',txtTmp) txtTmp=re.sub(u'(ا?گر|هر|آن|بدان|چنان) چه ',ur'\1چه ',txtTmp) txtTmp=txtTmp.replace(u'چه ',u'چه ') txtTmp=re.sub(ur'(?<=\s)(هر|آن|چنان) که ',ur'\1که ',txtTmp) txtTmp=txtTmp.replace(u'طوریکه',u'طوری که').replace(u'ایکه',u'ای که') txtTmp=re.sub(u'(هم[یا]ن|بد[یا]ن|چن[یا]ن) ?(?=گونه|[جط]ور|که|جا )',ur'\1',txtTmp) txtTmp=re.sub(ur' ها(?=\s|یی?\s)',u'ها',txtTmp) txtTmp=txtTmp.replace(u' ترین ',u'ترین ')
#SPC: شبهسادهها txtTmp=re.sub(u'(ة|آیت|حجت|ممنوع|مشترک|متساوی|متوازی|مختلف|کثیر|سریع|جدید|لازم|بین|فوق|تحت|متفق|قریب|ح[سز]ب|عظیم|قلیل|موقوف|مسلوب|مستجاب|مرضی|لطایف|ربیع|جمادی| ذی| دار|باب|خاتم|سید|امیر) ال',ur'\1ال',txtTmp) txtTmp=re.sub(u'علی ?(هذا|حده|رغم|الاصول|القاعده)',ur'علی\1',txtTmp) txtTmp=re.sub(u'مع ?(هذا|ذلک|الوصف|ال[اأ]سف)',ur'مع\1',txtTmp) txtTmp=re.sub(u'ذی ?(شعور|نفوذ|ربط|نفع|حق|حساب|صلاح)',ur'ذی\1',txtTmp) txtTmp=re.sub(u'من ?(باب|جمله)',ur'من\1',txtTmp)
#SPC: افعال txtTmp = re.sub(ur'(?<=\s)(فر[او] ?|وا ?|[بد]ر ?|)(ن?می)[ ]?(آراست|آرامید|آزرد|آزمود|آسود|آشامید|آشفت|آفرید|آلود|آمد|آمرزید|آم[یو]خت|آورد|آویخت|ارزید|افتاد|افراشت|ا?فروخت|افزود|افسرد|ا?فشاند|اف[کگ]ند|انجامید|اند[او]خت|اندیشید|ان[بگ]اشت|نگاشت|انگیخت|ایستاد|با[خف]ت|با[لر]ید|[شب]ایست|بخش[یو]د|برازید|ب[ور]د|[بپ]رید|[رجشب]ست|بلعید|پ[وا]شید|پخت|پذیرفت|پراکند|پرداخت|پرست?ید|پرورد|پرید|پژمرد|پژوهید|پسندید|پنداشت|[بپ]و[سشی]ید|پیچید|پیراست|پیمود|پیوست|تا[فخ]ت|تپید|ترا[وش]ید|تر[سشک]ید|تکانی?د|تنید|توانست|جن[بگ]ید|[جد]وش?ید|چرخید|چسبید|چ[مکشر]?ید|خر[او]شید|خ[مرز]ید|خشکید|خوابید|خو?است|خواند|خورد|خیسید|داد|داشت|[مد]انست|درخشید|دزدید|دوخت|ربود|ر[مس]ید|رو?فت|رنجید|رو[ئی]ید|ریخت|زد|زدود|زیست|س[وا]خت|سپرد|س[تر]ود|ستیزید|سرشت|سزید|سنجید|ش[تک]افت|شد|شک?ست|ش[کگ]فت|شمرد|شناخت|شنید|شورید|طلبید|غلطید|فرستاد|فر[مس]ود|فریفت|فشرد|فهمید|قبولاند|کا[سش]ت|کاوید|ک[نر]د|کشت|کشید|کو[چش]ید|کوفت|گداخت|گذا?شت|گرایید|گردید|گرفت|گروید|گری[خس]ت|گزارد|گزید|گس[تا]رد|گسست|گ[فش]ت|گشود|گماشت|گنجید|ل[رغ]زید|ما[لس]ید|ماند|مرد|نا[مل]ید|نشست|نکوهید|ن?گریست|نمود|نواخت|نوردید|نوشت|نهاد|نهفت|نی?وشید|ور?زید|هراسید|یازید|یافت)(م|ی|یم|ید|ند|اند)',ur'\1\2\3\4',txtTmp)#(آرای|آرام|آزار|آزمای|آسای|آشام|آفرین|آلای|آی|آمرز|آم[یو]ز|آور|آویز|ارز|افت|افر[وا]ز|افزای|ا?فشان|انجام|انداز|اندوز|اندیش|انگار|انگیز|ایست|با[رز]|با[شلفی]|بخشای|بخش|بند|بلع|بوی?|پاش|پز|پذیر|پراکن|پرداز|پرست?|پرور|پژوه|پسند|پناه|پندار|پو[سشی]|پیچ|پیرای|پیمای|پیوند|تاز|تاب|تپ|ترا[شو]|توان|جوی|جن[بگ]|جو[شی]|چرخ|چسب|چ[شمک]|چین|خار|خی?ز|خر[وا]ش|خرام|خشک|خوا[بهن]|خور|ده|دا[رن]|درخش|دزد|د[وم]|دوز|دوش|بین|ربای|ر[هسو]|روی|رنج|ریز|ز[ین]|زدای|س[وا]ز|سپر|ستان|ستیز|سرای|سنج|سای|ش[وا]ی|شتاب|شکاف|شکن|شمر|شناس|شنو|شور|طلب|فرست|فرسای|فرمای|فروش|فریب|ف[سش]ر|فهم|قبولان|کا[رهو]|ک[نش]|کو[چشب]|گداز|گذا?ر|گرای|گرد|گیر|گریز|گری|گزار|گزین|گستر|گشای|گو|گ[وم]ار|گنج|ل[غر]ز|لنگ|ما[لن]|میر|مک|نا[زلم]|نشین|نکوه|نگا?ر|نمای|نواز|نورد|نویس|نوش|ور?ز|هراس|یاب) txtTmp=re.sub(ur'([بن])یا(فزای|فزود|نداز|ند[او]خت|نجامی?د|ندیش|ف[کگ]ن|رز|فتد|فر[او]ز|فروخت|فشان|ندوز|نگار|ن[گب]اشت|فراشت|فسرد)',ur'\1ی\2',txtTmp)
#e: اً txtTmp=re.sub(ur'(الزاما|لزوما|یقینا|قطعا|حتما|قاعدتا|طبیعتا|طبعا|قهرا|حقیقتا|واقعا|مطمئنا|اصو?لا|اصالتا| مسلما|تماما|کاملا|ع[یل]نا|اکیدا|مطلقا|دقیقا|نسبتا|تقریبا|حدودا|معمولا|احتمالا|استثنائا| کلا|جزئا|مجموعا|جمعا|اجماعا|ابتدائا|نهایتا|اقلا|اکثرا|غالبا|عمدت?ا|ندرتا|گاها|صریحا|صراحتا|عموما|خصوصا|اجمالا|اختصا[صر]ا|مختصرا|ظاهرا|باطنا|عمیقا|ذاتا|روحا|جسما|ابتدائا|مقدمتا|بع[ضد]ا|قبلا|[جش]دیدا|سابقا|اخیرا| ابدا|تلویحا|حضورا|نیابتا|لطفا|ارتجالا|اجبارا|اختیارا|مستقلا|احتیاطا|احیانا|غفلتا|اشتباها|عجالتا|سریعا|دا[ئی]ما|فورا| نقدا|منحصرا|صرفا|مجددا|مکررا|تصادفا|عملا|فعلا|موقتا|ضمنا|نتیجتا|قانونا|شرعا|نوعا|اصطلاحا|جسارتا|م[وؤ]کدا|ذیلا|شخصا|مفصلا| رسما|ترجیحا|قلبا| رأسا|متناوبا|متوالیا|متقابلا|متعاقبا|مثلا|فرضا|ایضا|بعضا|ناچارا|تلفنا|زبانا|احتراما|کتبا|شفاها|اولا|ثانیا|ثالثا|رابعا|خامسا|سادسا|سابعا|ثامنا|تاسعا|عاشرا) ',ur'\1ً ',txtTmp)
#e: طبق قاعده فارسی txtTmp=re.sub(u'(آزمایش|پژوهش|پیشنهاد|نمایش|دستور|فرمایش|گزارش|گرایش)اتی ',ur'\1هایی ',txtTmp) # اتی -> هایی txtTmp=txtTmp.replace(u'بازرسین',u'بازرسان').replace(u'داوطلبین',u'داوطلبان') #e: ین -> ان txtTmp=re.sub(ur'(?<=\s)(رهبر|خوب|بد|[مز]ن)یّ?ت',ur'\1ی',txtTmp) # یّت -> ی txtTmp=re.sub(u'دو[ئی]یت',u'دوگانگی',txtTmp) # یّت txtTmp=txtTmp.replace(u'زباناً',u'زبانی').replace(u'تلفناً',u'تلفنی').replace(u'ناچاراً',u'بهناچار').replace(u'گاهاً',u'گاهی') #e: اً
#e: ء txtTmp=re.sub(u'سئ?[ؤو]ء?[اآ]ل',u'سؤال',txtTmp) txtTmp=re.sub(u'مس[ؤو]و?ل',u'مسئول',txtTmp) txtTmp=re.sub(u'مس[اأإ]له',u'مسئله',txtTmp) txtTmp=re.sub(u'متل[اأإ]ل[ئی][ٔء]?',u'متلألئ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])تل[اأإ]ل[وؤ](?=[\s\)])',u'تلألؤ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])فواد(?=[\s\)])',u'فؤاد',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])روسا(?=[\s\)ءی])',u'رؤسا',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])ر[اأإ]ی[ ]گیر',u'رأیگیر',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])(نش|جر|هی)[اأإ]ت(?=[\s\)])',ur'\1ئت',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])ما(?=[نی]وس|لوف|کول|خو?ذ|مو[رن]|[مذ]ن[ه ]|وا )',u'مأ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])مو(?=[یک]د |لف[\s\:]|سس[اه\s]|خر |ثر|نث|ذن|دب|انست|اخذه|تلفه)',u'مؤ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])متا(?=سف[ا ]|خر|لم |ثر)',u'متأ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])تا(?=سف|ثی?ر|[ئی]ید|لیف|خیر|کید |مین |سیس[: ]|لم|مّ?ل[ی ]|نّ?ی|دیب )',u'تأ',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])(خل|مبد|ملج?|منش)اء?(?=[\s\)])',ur'\1أ',txtTmp) txtTmp=txtTmp.replace(u'تأئید',u'تأیید').replace(u' جزیی',u' جزئی').replace(u'رییس',u'رئیس').replace(u' مسایل',u' مسائل') #e: یـ <-> ئـ txtTmp=re.sub(ur'(?<=[\s\(])ش[ئی]ٔ?(?=[\s\)])',u'شیء',txtTmp) # شیء txtTmp=re.sub(ur'(?<=[\s\(])(شی|جز|سو)[ءی]ی(?=[\s\)])',ur'\1ئی',txtTmp) # ئی txtTmp=txtTmp.replace(u'طمانینه',u'طمأنینه').replace(u'تآتر',u'تئاتر').replace(u' الان',u' الآن').replace(u' راکتور',u' رآکتور').replace(u'فرآیند',u'فرایند').replace(u'فرآورده',u'فراورده')
#e: هٔ txtTmp=re.sub(ur'(هٓ|ۀ|هء|ه[ ]ی)(?=\s)',u'هٔ',txtTmp) txtTmp=txtTmp.replace(u'درباره ',u'دربارهٔ ').replace(u'فرماندهٔ',u'فرماندهِ').replace(u' زرهٔ',u' زرهِ') txtTmp=re.sub(u'(?<=به )(گفته|وسیله|نوشته|واسطه) ',ur'\1ٔ ',txtTmp)
#SPC: و txtTmp=txtTmp.replace(u'گفت و گو',u'گفتوگو').replace(u'جست و جو',u'جستوجو').replace(u'خفت و خیز',u'خفتوخیز').replace(u'رفت و آمد',u'رفتوآمد').replace(u'شست و شو',u'شستوشو').replace(u'پخت و پز',u'پختوپز').replace(u'کند و کاو',u'کندوکاو').replace(u'کم و بیش',u'کموبیش')
#e: حشو txtTmp=re.sub(ur'(?<=[\s\(])بر\s?علیه',u'علیه',txtTmp) # بر علیه txtTmp=re.sub(ur'اعلم[ ]?تر',u'اعلم',txtTmp) # تر
#e: پارسیسازی txtTmp=re.sub(ur'(?<=[\s\(])لیست(?=ی? )',u'فهرست',txtTmp) # لیست
#e: انگلیسیسازی
- for iNum in range(0,10):
- txtTmp=re.sub(ur'(\|\s*isbn\s*\=\s*|ISBN )([ -'+faNums+enNums+u']*)'+faNums[iNum], ur'\1\2'+enNums[iNum],txtTmp) # ISBN
#e: غلط املایی txtTmp=re.sub(ur'فنّ?[ ]?[آا]وری',ur'فناوری',txtTmp) txtTmp=re.sub(ur'دا(ی|ئ)ر[ةته][ ]?المعارف',ur'دا\1رةالمعارف',txtTmp) txtTmp=re.sub(u'ویکی ?(?=سازی|فا |[مپ]دیا)',u'ویکی',txtTmp) txtTmp=re.sub(u'علاقه?[ ]?مند',u'علاقهمند',txtTmp) txtTmp=txtTmp.replace(u'باقیماند',u'باقیماند') txtTmp=txtTmp.replace(u'مارچ',u'مارس').replace(u'آپریل',u'آوریل').replace(u'جولای',u'ژوئیه').replace(u'آگوست',u'اوت')
txtTmp=re.sub(ur'\=\s*پانو[یي]س[ ]?ها\s*\=',u'= پانویس =',txtTmp) txtTmp=re.sub(ur'\=\s*جُ?ستار(ها[یي])? (وابسته|د[یي]گر|مرتبط|مشابه)\s*\=',u'= جستارهای وابسته =',txtTmp) txtTmp=re.sub(ur'\=\s*(منبع|منبع[ ]?ها)\s*\=',u'= منابع =',txtTmp) txtTmp=re.sub(ur'\=\s*(پ[یي]وند|ل[یي]نک)[ ]?(ها[یي])? (به ب[یي]رون|ب[یي]رون[یي]|خارج[یي])\s*\=',u'= پیوند به بیرون =',txtTmp)
txtTmp=re.sub(u'(سپاس|شکر| بر)[ ]?گ[ذز]ار', ur'\1گزار',txtTmp) txtTmp=re.sub(u'(پایه|بنیان)[ ]?گ[ذز]ار', ur'\1گذار',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])بی[ ]?م[حه]ابا', u'بیمحابا',txtTmp) txtTmp=re.sub(ur'(?<=[\s\(])بر ?خو?است', u'برخاست',txtTmp) txtTmp=re.sub(u'خوانواد(?=ه|گی)', u'خانواد',txtTmp) txtTmp=txtTmp.replace(u'خواستگاه',u'خاستگاه').replace(u'اطاق',u'اتاق').replace(u'باطری',u'باتری').replace(u'باطلاق',u'باتلاق').replace(u'ضمینه',u'زمینه').replace(u'انظباط',u'انضباط').replace(u'حاظر',u'حاضر').replace(u'مذبور',u'مزبور').replace(u'قائله',u'غائله').replace(u' وحله',u' وهله').replace(u'پزشگی',u'پزشکی').replace(u'تلوزیون',u'تلویزیون').replace(u'پرفسور',u'پروفسور').replace(u' خوشنود',u' خشنود').replace(u'هگی ',u'گی ')
#a: الگوافزایی if txtTmp.find(u'{{پانویس')==-1:
txtTmp=txtTmp.replace(u'== منابع ==', u'== منابع ==\n
')
return txtTmp
- ------------------------------------------------------------------------------
def alarmblog():
alarmlink = u'کاربر:Reza1615/test10' blogs = u'blogfa', u'mihanblog', u'persianblog', u'parsiblog', u'blogspot', u'wordpress', u'blogsky' for blog in blogs: if text_fa.find(blog) != -1: sitea = wikipedia.getSite('fa') pagealarm = wikipedia.Page(sitea, alarmlink) blogalarmtext = pagealarm.get() blogalarmtext = blogalarmtext + u'
\n' + str(page) commentb = u'ربات: در مقاله پیوند وبلاگ موجود است.' pagealarm.put(blogalarmtext, commentb, watchArticle = None, minorEdit = True) break
def alarmsource():
alarmlink = u'کاربر:Reza1615/test9' if text_fa.find(u'=منابع=')==-1: sitea = wikipedia.getSite('fa') pagealarm = wikipedia.Page( sitea, alarmlink ) blogalarmtext = pagealarm.get() blogalarmtext = blogalarmtext + u'
\n' + str(page) comments = u'ربات: مقاله بدون منبع است.' pagealarm.put( blogalarmtext, comments, watchArticle = None, minorEdit = True )
def run( self ):
trovato_en = False sen = wikipedia.Site('fa') interwiki_list = [] for page in self.generator: try: if not page.canBeEdited(): wikipedia.output( u'Skipping locked page %s' % page.title() ) continue text_fa = page.get() except wikipedia.NoPage: wikipedia.output( u'Page %s not found' % page.title() ) continue except wikipedia.IsRedirectPage: pageRedirect = page.getRedirectTarget() text_fa = pageRedirect.get() pageRedirect = page.getRedirectTarget() text_fa = pageRedirect.get() page = page.getRedirectTarget() wikipedia.output( u'Page %s was Redirect but edited!' % page ) except: continue new_text=datacorrection(text_fa) if bloga == True: alarmblog(new_text, str(page)) if sourcea==True: alarmsource(new_text, str(page)) wikipedia.setAction( msg % page ) self.change(page, new_text)
class Boteditor:
def __init__(self, generator, autoTitle = False, autoText = False): self.generator = generator def change(self, page, new_text): if new_text.find( u'#تغییرمسیر')==-1 or new_text.find( u'#([Rr]edirect|REDIRECT)')==-1: try: page.put(new_text, msg % page, watchArticle = None, minorEdit = True) except wikipedia.EditConflict: wikipedia.output( u'Skipping %s because of edit conflict' % ( page.title() ) ) except wikipedia.SpamfilterError,url: wikipedia.output( u'Cannot change %s because of blacklist entry %s' % ( page.title(),url ) )
def main():
gen = None # summary message summary_commandline = None # Don't edit pages which contain certain texts. exceptions = [] # commandline paramater. # Which namespaces should be processed? # default to [] which means all namespaces will be processed namespaces = [] template = None PageTitles = [] autoText = False autoTitle = False bloga = False sourcea = False # This factory is responsible for processing command line arguments # that are also used by other scripts and that determine on which pages # to work on. genFactory = pagegenerators.GeneratorFactory() # Load default summary message. # BUG WARNING: This is probably incompatible with the -lang parameter. wikipedia.setAction( msg ) # Read commandline parameters. #------------------------------------------------------------------------------------------------- for arg in wikipedia.handleArgs(): if arg == '-autotitle': autoTitle = True elif arg == '-autotext': autoText = True elif arg.startswith( '-page' ): if len( arg ) == 5: PageTitles.append( wikipedia.input( u'Which page do you want to change?' ) ) else: PageTitles.append( arg[6:] ) elif arg.startswith( '-except:' ): exceptions.append( arg[8:] ) elif arg.startswith( '-blog:' ): bloga=True elif arg.startswith( '-source:' ): sourcea=True elif arg.startswith( '-template:' ): template = arg[10:] elif arg.startswith( '-namespace:' ): namespaces.append( int( arg[11:] ) ) elif arg.startswith( '-summary:' ): wikipedia.setAction( arg[9:] ) summary_commandline = True else: generator = genFactory.handleArg( arg ) if generator: gen = generator print namespaces
if PageTitles: pages = [wikipedia.Page( wikipedia.getSite(), PageTitle ) for PageTitle in PageTitles] gen = iter( pages ) if not gen: # syntax error, show help text from the top of this file wikipedia.showHelp( 'behsaz' ) wikipedia.stopme() sys.exit() if namespaces != []: gen = pagegenerators.NamespaceFilterPageGenerator( gen, namespaces )
- gen = pagegenerators.RedirectFilterPageGenerator(gen)
preloadingGen = pagegenerators.PreloadingGenerator( gen, pageNumber = 20 )
- -------------------------------------------------------------------------------------------------
preloadingGen = pagegenerators.PreloadingGenerator( gen, pageNumber = 1 ) bot = Boteditor( preloadingGen, autoTitle, autoText) run(bot)
if __name__ == "__main__":
bloga=False sourcea=False try: main() except: pass