Revision: 6420
Author:   nicdumz
Date:     2009-02-23 05:29:01 +0000 (Mon, 23 Feb 2009)

Log Message:
-----------
* modifying Category.copyTo so it accepts either a category name or a Category 
object as a copy target
* Category.copyTo seemed to expect a formatted string as a message. Why is 
that? This was not documented, so I changed it in a way that it either accepts 
a formatted string, or uses the given message. Documented :)

Modified Paths:
--------------
    branches/rewrite/pywikibot/page.py

Modified: branches/rewrite/pywikibot/page.py
===================================================================
--- branches/rewrite/pywikibot/page.py  2009-02-23 05:11:14 UTC (rev 6419)
+++ branches/rewrite/pywikibot/page.py  2009-02-23 05:29:01 UTC (rev 6420)
@@ -1416,11 +1416,16 @@
             return False
         return True
 
-    def copyTo(self, catname, message):
+    def copyTo(self, cat, message):
         """
         Copy text of category page to a new page.  Does not move contents.
 
-        @param catname: New category title (without namespace)
+        @param cat: New category title (without namespace) or Category object
+        @type cat: unicode or Category
+        @param message: message to use for category creation message
+        If two %s are provided in message, will be replaced 
+        by (self.title, authorsList)
+        @type message: unicode
         @return: True if copying was successful, False if target page
             already existed.
 
@@ -1428,8 +1433,11 @@
         # This seems far too specialized to be in the top-level framework
         # move to category.py? (Although it doesn't seem to be used there,
         # either)
-        catname = self.site().category_namespace() + ':' + catname
-        targetCat = Category(self.site(), catname)
+        if not isinstance(cat, Category):
+            cat = self.site().category_namespace() + ':' + cat
+            targetCat = Category(self.site(), cat)
+        else:
+            targetCat=cat
         if targetCat.exists():
             pywikibot.output(u'Target page %s already exists!'
                               % targetCat.title(),
@@ -1439,7 +1447,10 @@
             pywikibot.output('Moving text from %s to %s.'
                              % (self.title(), targetCat.title()))
             authors = ', '.join(self.contributingUsers())
-            creationSummary = message % (self.title(), authors)
+            try:
+                creationSummary = message % (self.title(), authors)
+            except TypeError:
+                creationSummary=message
             targetCat.put(self.get(), creationSummary)
             return True
 



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

Reply via email to