Revision: 8189
Author:   amir
Date:     2010-05-17 21:00:30 +0000 (Mon, 17 May 2010)

Log Message:
-----------
add -former tool for unlinking FFAs,100% tested

Modified Paths:
--------------
    trunk/pywikipedia/featured.py

Modified: trunk/pywikipedia/featured.py
===================================================================
--- trunk/pywikipedia/featured.py       2010-05-17 20:25:22 UTC (rev 8188)
+++ trunk/pywikipedia/featured.py       2010-05-17 21:00:30 UTC (rev 8189)
@@ -30,6 +30,8 @@
 
 -good             use this script for good articles.
 
+-former           use this script for removing {{Link FA|xx}} from former 
fearured articles
+
 -quiet            no corresponding pages are displayed.
 
 -dry              for debug purposes. No changes will be made.
@@ -136,6 +138,10 @@
     'ksh':u'bot: [[%s:%s]] ess_en joode Leß',
     'sv': u'Bot: [[%s:%s]] är en utmärkt list',
 }
+msg_former = {
+    'en': u'Bot: [[%s:%s]] is a former featured article',
+    'fa': u'ربات:نوشتار [[%s:%s]] یک نوشتار برگزیده پیشین است.',
+}
 
 # ALL wikis use 'Link FA', and sometimes other localized templates.
 # We use _default AND the localized ones
@@ -352,6 +358,17 @@
     'zh': (BACK, u'Featured list'),
     'da': (BACK, u'FremragendeListe'),
 }
+former_name = {
+    'th': (CAT, u"บทความคัดสรรในอดีต"),
+    'pt': (CAT,u"!Ex-Artigos_destacados"),
+    'es': (CAT,u"Wikipedia:Artículos anteriormente destacados"),
+    'hu': (CAT,u"Korábbi kiemelt cikkek"),
+    'ru': (CAT, u"Википедия:Устаревшие избранные статьи"),
+    'ca': (CAT, u"Arxiu de propostes de la retirada de la distinció"),
+    'es': (CAT, u"Wikipedia:Artículos anteriormente destacados"),
+    'tr': (CAT, u"Vikipedi eski seçkin maddeler"),
+    'zh': (CAT, u"Wikipedia_former_featured_articles"),
+}
 
 # globals
 interactive=0
@@ -364,6 +381,8 @@
     try:
         if pType == 'good':
             method=good_name[site.lang][0]
+        elif pType == 'former':
+            method=former_name[site.lang][0]
         elif pType == 'list':
             method=lists_name[site.lang][0]
         else:
@@ -373,6 +392,8 @@
         return arts
     if pType == 'good':
         name=good_name[site.lang][1]
+    elif pType == 'former':
+        name=former_name[site.lang][1]   
     elif pType == 'list':
         name=lists_name[site.lang][1]
     else:
@@ -450,6 +471,12 @@
             templates+= template_good['_default']
         except KeyError:
             templates = template_good['_default']
+    elif pType == 'former':
+        try:
+            templates = template[lang]
+            templates+= template['_default']
+        except KeyError:
+            templates = template['_default']
     elif pType == 'list':
         try:
             templates = template_lists[lang]
@@ -497,53 +524,78 @@
                 wikipedia.output(u"source page doesn't exist: %s" % a.title())
                 continue
             atrans = findTranslated(a, tosite, quiet)
-            if atrans:
-                text=atrans.get()
-                m=re_Link_FA.search(text)
-                if m:
-                    wikipedia.output(u"(already done)")
-                else:
-                    # insert just before interwiki
-                    if (not interactive or
-                        wikipedia.input(u'Connecting %s -> %s. Proceed? 
[Y/N]'%(a.title(), atrans.title())) in ['Y','y']
-                        ):
-                        m=re_this_iw.search(text)
-                        if not m:
-                            wikipedia.output(u"no interwiki record, very 
strange")
-                            continue
-                        site = wikipedia.getSite()
-                        if pType == 'good':
-                            comment = 
wikipedia.setAction(wikipedia.translate(site, msg_good) % (fromsite.lang, 
a.title()))
-                        elif pType == 'list':
-                            comment = 
wikipedia.setAction(wikipedia.translate(site, msg_lists) % (fromsite.lang, 
a.title()))
-                        else:
-                            comment = 
wikipedia.setAction(wikipedia.translate(site, msg) % (fromsite.lang, a.title()))
+            if pType!='former':
+                if atrans:
+                    text=atrans.get()
+                    m=re_Link_FA.search(text)
+                    if m:
+                        wikipedia.output(u"(already done)")
+                    else:
+                        # insert just before interwiki
+                        if (not interactive or
+                            wikipedia.input(u'Connecting %s -> %s. Proceed? 
[Y/N]'%(a.title(), atrans.title())) in ['Y','y']
+                            ):
+                            m=re_this_iw.search(text)
+                            if not m:
+                                wikipedia.output(u"no interwiki record, very 
strange")
+                                continue
+                            site = wikipedia.getSite()
+                            if pType == 'good':
+                                comment = 
wikipedia.setAction(wikipedia.translate(site, msg_good) % (fromsite.lang, 
a.title()))
+                            elif pType == 'list':
+                                comment = 
wikipedia.setAction(wikipedia.translate(site, msg_lists) % (fromsite.lang, 
a.title()))
+                            else:
+                                comment = 
wikipedia.setAction(wikipedia.translate(site, msg) % (fromsite.lang, a.title()))
+                            ### Moving {{Link FA|xx}} to top of interwikis ###
+                            if template_on_top == True:
+                                # Getting the interwiki
+                                iw = wikipedia.getLanguageLinks(text, site)
+                                # Removing the interwiki
+                                text = wikipedia.removeLanguageLinks(text, 
site)
+                                text += u"\r\n{{%s|%s}}\r\n"%(templatelist[0], 
fromsite.lang)
+                                # Adding the interwiki
+                                text = wikipedia.replaceLanguageLinks(text, 
iw, site)
 
-                        ### Moving {{Link FA|xx}} to top of interwikis ###
-                        if template_on_top == True:
-                            # Getting the interwiki
-                            iw = wikipedia.getLanguageLinks(text, site)
-                            # Removing the interwiki
-                            text = wikipedia.removeLanguageLinks(text, site)
-                            text += u"\r\n{{%s|%s}}\r\n"%(templatelist[0], 
fromsite.lang)
-                            # Adding the interwiki
-                            text = wikipedia.replaceLanguageLinks(text, iw, 
site)
-
-                        ### Placing {{Link FA|xx}} right next to corresponding 
interwiki ###
-                        else:
-                            text=(text[:m.end()]
-                                  + (u" {{%s|%s}}" % (templatelist[0], 
fromsite.lang))
-                                  + text[m.end():])
-                        if not dry:
-                            try:
-                                atrans.put(text, comment)
-                            except wikipedia.LockedPage:
-                                wikipedia.output(u'Page %s is locked!' % 
atrans.title())
-
-                cc[a.title()]=atrans.title()
+                            ### Placing {{Link FA|xx}} right next to 
corresponding interwiki ###
+                            else:
+                                text=(text[:m.end()]
+                                      + (u" {{%s|%s}}" % (templatelist[0], 
fromsite.lang))
+                                      + text[m.end():])
+                            if not dry:
+                                try:
+                                    atrans.put(text, comment)
+                                except wikipedia.LockedPage:
+                                    wikipedia.output(u'Page %s is locked!' % 
atrans.title())
+                    cc[a.title()]=atrans.title()
+            else:
+                if atrans:
+                    text=atrans.get()
+                    m=re_Link_FA.search(text)
+                    if m:
+                        # insert just before interwiki
+                        if (not interactive or
+                            wikipedia.input(u'Connecting %s -> %s. Proceed? 
[Y/N]'%(a.title(), atrans.title())) in ['Y','y']
+                            ):
+                            m=re_this_iw.search(text)
+                            if not m:
+                                wikipedia.output(u"no interwiki record, very 
strange")
+                                continue
+                            site = wikipedia.getSite()
+                            comment = 
wikipedia.setAction(wikipedia.translate(site, msg_former) % (fromsite.lang, 
a.title()))
+                            text=text.replace(u"{{%s|%s}}" % (templatelist[0], 
fromsite.lang),'',1)
+                            if not dry:
+                                try:
+                                    atrans.put(text, comment)
+                                except wikipedia.LockedPage:
+                                    wikipedia.output(u'Page %s is locked!' % 
atrans.title())
+                    else:
+                        wikipedia.output(u"(already done)")
+                    cc[a.title()]=atrans.title()
         except wikipedia.PageNotSaved, e:
             wikipedia.output(u"Page not saved")
+                        
 
+
 if __name__=="__main__":
     template_on_top = False
     featuredcount = False
@@ -573,6 +625,8 @@
             processType = 'good'
         elif arg == '-lists':
             processType = 'list'
+        elif arg == '-former':
+            processType = 'former'
         elif arg == '-quiet':
             quiet = True
         elif arg == '-dry':
@@ -589,6 +643,8 @@
                     fromlang=[ll for ll in good_name.keys() if ll>=ll1 and 
ll<=ll2]
                 elif processType == 'list':
                     fromlang=[ll for ll in good_lists.keys() if ll>=ll1 and 
ll<=ll2]
+                elif processType == 'former':
+                    fromlang=[ll for ll in former_lists.keys() if ll>=ll1 and 
ll<=ll2]
                 else:
                     fromlang=[ll for ll in featured_name.keys() if ll>=ll1 and 
ll<=ll2]
         except:
@@ -599,6 +655,8 @@
             fromlang=good_name.keys()
         elif processType == 'list':
             fromlang=lists_name.keys()
+        elif processType == 'former':
+            fromlang=former_name.keys()
         else:
             fromlang=featured_name.keys()
 



_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to