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

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

  1. countrydict :محتوی نام کشورها و ترجمه نام آنها است که نباید تغییر کند
  2. list : محتوی فهرست عنوان‌هایی است که در آن کشورها مد نظر است مثلا فوتبال در رده:فوتبال در ایران که باید در اینجا عبارتهای فهرست عبارتهای درون ویکی انگلیسی با ترجمه را باید وارد کرد و از آنجایی که تعدادشان ۱۰۰۰ مورد است و نیاز به بازبینی ترجمه دارند باید با دقت ترجمه و استفاده شوند.

نکته: این ربات هر رده‌ای را میسازد نامش را در فایل متنی listResult.txt ذخیره میکند تا بعدا بر اساس این فهرست میان‌ویکی و رده داده شود برای میانویکی از رباتی که پرچم در ویکی فارسی و انگلیسی داشته باشد استفاده کنید تا رباتهای ویکی انگلیسی میان‌ویکی را به ویکی‌های دیگر ببرند استفاده کنید

برای رده‌دهی همسنگ از ربات ویکی‌پدیا:درخواست‌های ربات/رده‌ساز مقاله‌ها بر اساس میان‌ویکی استفاده کنید و برای استفاده از file از آرگومان radeh.py -file:listResult.txt استفاده کنید <syntaxhighlight lang="python">

  1. !/usr/bin/python
  2. -*- coding: utf-8 -*-
  3. Reza(User:reza1615), 2011
  4. Distributed under the terms of the CC-BY-SA 3.0 .

import catlib ,pagegenerators import wikipedia import codecs,time,string,re,query wikipedia.config.put_throttle = 0 wikipedia.put_throttle.setDelay() countrydict=(ur"Australia", ur"استرالیا", u"Afghanistan", u"افغانستان", u"Albania", u"آلبانی", u"Algeria", u"الجزایر", u"Angola", u"آنگولا", u"Anguilla", u"آنگویلا", u"Antarctica", u"جنوبگان", u"Antigua and Barbuda", u"آنتیگوا و باربودا", u"Argentina", u"آرژانتین", u"Armenia", u"ارمنستان", u"Austria", u"اتریش", u"Azerbaijan", u"جمهوری آذربایجان", u"Bahrain", u"بحرین", u"Bangladesh", u"بنگلادش", u"Barbados", u"باربادوس", u"Belarus", u"بلاروس", u"Belgium", u"بلژیک", u"Belize", u"بلیز", u"Benin", u"بنین", u"Bermuda", u"برمودا", u"Bolivia", u"بولیوی", u"Bosnia and Herzegovina", u"بوسنی و هرزگوین", u"Botswana", u"بوتسوانا", u"Brazil", u"برزیل", u"Brunei", u"برونئی", u"Bulgaria", u"بلغارستان", u"Burkina Faso", u"بورکینا فاسو", u"Burma", u"بورما", u"Burundi", u"بوروندی", u"Cambodia", u"کامبوج", u"Cameroon", u"کامرون", u"Canada", u"کانادا", u"Chad", u"چاد", u"Chile", u"شیلی", u"China", u"چین", u"Colombia", u"کلمبیا", u"Comoros", u"کومور", u"Costa Rica", u"کاستاریکا", u"Côte d'Ivoire", u"ساحل عاج", u"Croatia", u"کرواسی", u"Cuba", u"کوبا", u"Cyprus", u"قبرس", u"Czechoslovakia", u"چکسلواکی", u"Denmark", u"دانمارک", u"Dominica", u"دومنیکا", u"East Timor", u"تیمور شرقی", u"Ecuador", u"اکوادور", u"Egypt", u"مصر", u"El Salvador", u"السالوادور", u"England", u"انگلستان", u"Equatorial Guinea", u"گینه استوایی", u"Eritrea", u"اریتره", u"Estonia", u"استونی", u"Ethiopia", u"اتیوپی", u"Fiji", u"فیجی", u"Finland", u"فنلاند", u"France", u"فرانسه", u"French Guiana", u"گوئنا فرانسه", u"French Polynesia", u"پولینزیا فرانسه", u"Gabon", u"گابن", u"Georgia (country)", u"گرجستان", u"Germany", u"آلمان", u"Ghana", u"غنا", u"Gibraltar", u"جبل الطارق", u"Greece", u"یونان", u"Grenada", u"گرانادا", u"Guadeloupe", u"جزیره گوادلوپ", u"Guatemala", u"گواتمالا", u"Guernsey", u"گرنزی", u"Guinea", u"گینه", u"Guinea-Bissau", u"گینه بیسائو", u"Guyana", u"گویان", u"Haiti", u"هائیتی", u"Honduras", u"هندوراس", u"Hungary", u"مجارستان", u"Iceland", u"ایسلند", u"India", u"هند", u"Indonesia", u"اندونزی", u"Iran", u"ایران", u"Iraq", u"عراق", u"Ireland", u"ایرلند", u"Israel", u"اسرائیل", u"Italy", u"ایتالیا", u"Jamaica", u"جامائیکا", u"Japan", u"ژاپن", u"Jersey", u"جرزی", u"Jordan", u"اردن", u"Kazakhstan", u"قزاقستان", u"Kenya", u"کنیا", u"Korea", u"کره", u"Kosovo", u"کوزوو", u"Kuwait", u"کویت", u"Kyrgyzstan", u"قرقیزستان", u"Laos", u"لائوس", u"Latvia", u"لتونی", u"Lebanon", u"لبنان", u"Lesotho", u"لسوتو", u"Liberia", u"لیبریا", u"Libya", u"لیبی", u"Liechtenstein", u"لیختن اشتاین", u"Lithuania", u"لیتوانی", u"Luxembourg", u"لوکزامبورگ", u"Madagascar", u"ماداگاسکار", u"Malawi", u"مالاوی", u"Malaysia", u"مالزی", u"Mali", u"مالی", u"Malta", u"مالت", u"Mauritania", u"موریتانی", u"Mauritius", u"موریس", u"Mexico", u"مکزیک", u"Moldova", u"مولداوی", u"Monaco", u"موناکو", u"Mongolia", u"مغولستان", u"Montenegro", u"مونته نگرو", u"Morocco", u"مراکش", u"Mozambique", u"موزامبیک", u"Namibia", u"نامیبیا", u"Nepal", u"نپال", u"New Caledonia", u"کالدونیای جدید", u"New Zealand", u"نیوزلند", u"Nicaragua", u"نیکاراگوئه", u"Niger", u"نیجر", u"Nigeria", u"نیجریه", u"North Korea", u"کره شمالی", u"Norway", u"نروژ", u"Pakistan", u"پاکستان", u"Palau", u"پالائو", u"Panama", u"پاناما", u"Papua New Guinea", u"پاپوآ گینه نو", u"Paraguay", u"پاراگوئه", u"Peru", u"پرو", u"Poland", u"لهستان", u"Portugal", u"پرتغال", u"Puerto Rico", u"پورتوریکو", u"Qatar", u"قطر", u"Romania", u"رومانی", u"Russia", u"روسیه", u"Rwanda", u"رواندا", u"Saint Kitts and Nevis", u"سنت کیتس و نویس", u"Saint Lucia", u"سنت لوسیا", u"Saint Vincent and the Grenadines", u"سنت وینسنت و گرنادین", u"Samoa", u"ساموآ", u"S?o Tomé and Pr?ncipe", u"سائوتومه و پرینسیپ", u"Saudi Arabia", u"عربستان سعودی", u"Scotland", u"اسکاتلند", u"Senegal", u"سنگال", u"Serbia", u"صربستان", u"Sierra Leone", u"سیرالئون", u"Singapore", u"سنگاپور", u"Slovakia", u"اسلواکی", u"Slovenia", u"اسلوونی", u"Somalia", u"سومالی", u"South Africa", u"آفریقای جنوبی", u"South Korea", u"کره جنوبی", u"Spain", u"اسپانیا", u"Sri Lanka", u"سری لانکا", u"Sudan", u"سودان", u"Suriname", u"سورینام", u"Swaziland", u"سوازیلند", u"Sweden", u"سوئد", u"Switzerland", u"سوئیس", u"Syria", u"سوریه", u"Taiwan", u"تایوان", u"Tajikistan", u"تاجیکستان", u"Tanzania", u"تانزانیا", u"Thailand", u"تایلند", u"the Bahamas", u"باهاما", u"the Central African Republic", u"جمهوری آفریقا مرکزی", u"the Cook Islands", u"جزایر کوک", u"the Czech Republic", u"جمهوری چک", u"the Democratic Republic of the Congo", u"جمهوری دموکراتیک کنگو", u"the Dominican Republic", u"جمهوری دومینیکن", u"the Gambia", u"گامبیا", u"the Isle of Man", u"جزیره من", u"the Maldives", u"مالدیو", u"the Marshall Islands", u"جزایر مارشال", u"the Netherlands", u"هلند", u"the Northern Mariana Islands", u"جزایر ماریانای شمالی", u"the Ottoman Empire", u"امپراتوری عثمانی", u"the Palestinian territories", u"فلسطین", u"the Philippines", u"فیلیپین", u"the Pitcairn Islands", u"جزایر پیت‌کرن", u"the Republic of Macedonia", u"جمهوری مقدونیه", u"the Republic of the Congo", u"جمهوری کنگو", u"the Solomon Islands", u"جزایر سلیمان", u"the Soviet Union", u"اتحاد جماهیر شوروی", u"the United Arab Emirates", u"امارات متحده عربی", u"the United Kingdom", u"انگلستان", u"the United States", u"آمریکا", u"Togo", u"توگو", u"Tonga", u"تونگا", u"Trinidad and Tobago", u"ترینیداد و توباگو", u"Tunisia", u"تونس", u"Turkey", u"ترکیه", u"Turkmenistan", u"ترکمنستان", u"Uganda", u"اوگاندا", u"Ukraine", u"اوکراین", u"Uruguay", u"اروگوئه", u"Uzbekistan", u"ازبکستان", u"Vanuatu", u"وانواتو", u"Vatican City", u"شهر واتیکان", u"Venezuela", u"ونزوئلا", u"Vietnam", u"ویتنام", u"Wallis and Futuna", u"والیس و فوتونا", u"Yemen", u"یمن", u"Yugoslavia", u"یوگوسلاوی", u"Zambia", u"زامبیا", u"Zimbabwe", u"زیمبابوه")# fill the list with english and persian translation




list=(ur"Abortion", ur"سقط جنین ", u"Abortion law", u"قانون سقط جنین ", u"Academic degrees", u"درجه علمی ", u"Academic grading", u"درجه بندی علمی ", u"Accounting", u"حسابداری ", u"Acting presidents", u"فعالیت رئیس جمهورها ", u"Administrative law", u"قانون اداری ", u"Adoption", u"اتخاذ ", u"Aerospace museums", u"موزه هوا و فضا ", u"African diasporas", u"آوارگان آفریقایی", u"Agritourism", u"اگری‌توریسم", u"Ahmadiyya", u"احمدیا", u"Air pollution", u"آلودگی هوا ", u"Airborne divisions", u"تقسیمات هوابرد ", u"Airships", u"کشتیهای هوایی ", u"Alcohol", u"الکل ", u"Alcohol law", u"قانون الکل ", u"Alcoholic beverages", u"مشروبات الکلی", u"Amateur theatre companies", u"شرکت‌های تئاتر آماتور ", u"Ambassadors by mission country", u"سفیران توسط کشور ماموریت ", u"Ambassadors of origin", u"سفرای مبدأ ", u"Americana", u"آمریکانا", u"Amphibians", u"دوزیستان ", u"Amphibious warfare vessels", u"ناوهای جنگی دوگانه سوز", u"Anarchism", u"آنارشیسم ", u"Anarchist organizations", u"سازمانهای آنارشیستی ", u"Ancient Greek sites", u"آثار باستانی یونان باستان ", u"Ancient peoples", u"مردم باستان ", u"Animal breeds of origin", u"نژاد دام‌ها بر پایه منشا ", u"Animal welfare and rights", u"رفاه و حقوق حیوانات ", u"Anthozoa", u"آنتوزیا", u"Anti-communism", u"آنتی کمونیسم ", u"Anti-fascist organizations", u"سازمان‌های ضد فاشیستی ", u"Anti-ship missiles", u"موشک ضد کشتی ")

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 checken(pagecheck,site):

        pagefa = wikipedia.Page( wikipedia.getSite(site),pagecheck )
        if pagefa.exists():
            return True
        else:
            return False

def main():

   textfa,texten=' ',' '
   for i in range(0,len(list),2):
       for j in range(0,len(countrydict),2):
           conten=countrydict[j].strip()
           contfa=countrydict[j+1].strip()
           itemen=list[i].strip()
           itemfa=list[i+1].strip()
           item1='Category:'+itemen+' in '+conten
           item2='Category:'+itemen+' of '+conten
           wikipedia.output(item1)
           if checken(item1,'en'):
               sukht(i,j,item1)
               continue
           else:
              if checken(item2,'en'):
                  sukht(i,j,item2)
                  continue
              else:
                   continue

def sukht(i,j,item3):

           conten=countrydict[j].strip()
           contfa=countrydict[j+1].strip()
           itemen=list[i].strip()
           itemfa=list[i+1].strip()
           item1='Category:'+itemen+' in '+conten
           item2='Category:'+itemen+' of '+conten
           faitem="رده:" + itemfa + " در " +contfa
           fatitle=contfa.replace('','').replace('',).strip()
           textfa=u" \n"+u""#instead of رده:ایران  write upper's category name
           
           faitem= zwnj(faitem)
           pagefa = wikipedia.Page( wikipedia.getSite('fa'),faitem )
           if not pagefa.exists():
               pagefa.put(textfa.strip(), u'ربات: ساختن رده بر پايه ویکی‌انگلیسی')
               wikipedia.output( ur"done=" + faitem)
               with codecs.open( 'listResult.txt',mode = 'a',encoding = 'utf8' ) as f:
                       f.write( u''+faitem+u'\n' )
           catfaup=u"رده:"+itemfa+u" بر پایه کشور"
           textupfa=u"\n"
           catfaup= zwnj(catfaup)
           pageupfa = wikipedia.Page( wikipedia.getSite('fa'),catfaup )
           if not pageupfa.exists():
               pageupfa.put(textupfa.strip(), u'ربات: ساختن رده بر پايه ویکی‌انگلیسی')
               wikipedia.output(u"done=" + catfaup)
               with codecs.open( 'listResult.txt',mode = 'a',encoding = 'utf8' ) as f:
                       f.write( u''+catfaup+u'\n' )
           


if __name__ == '__main__':

   try:
       main()
   finally:
       wikipedia.stopme()