Xqt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/187695

Change subject: Use PreloadingGenertor when retrieving redirects from special 
page
......................................................................

Use PreloadingGenertor when retrieving redirects from special page

Improve loading performance for redirects from special page.
Other generators are time consuming and preloading pages does
not give better performance.

Change-Id: I5570523c977578ad6db61425b3115e09de54fc5d
---
M scripts/redirect.py
1 file changed, 17 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/95/187695/1

diff --git a/scripts/redirect.py b/scripts/redirect.py
index bcb316e..0243190 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -80,6 +80,7 @@
 import datetime
 import pywikibot
 from pywikibot import i18n, xmlreader, Bot
+from pywikibot import pagegenerators
 
 
 class RedirectGenerator:
@@ -288,8 +289,10 @@
         else:
             # retrieve information from broken redirect special page
             pywikibot.output(u'Retrieving special page...')
-            for redir_name in self.site.broken_redirects():
-                yield redir_name.title()
+            gen = self.site.broken_redirects()
+            gen = pagegenerators.PreloadingGenerator(gen)
+            for redir_page in gen:
+                yield redir_page
 
     def retrieve_double_redirects(self):
         if self.use_move_log:
@@ -322,8 +325,10 @@
         else:
             # retrieve information from double redirect special page
             pywikibot.output(u'Retrieving special page...')
-            for redir_name in self.site.double_redirects():
-                yield redir_name.title()
+            gen = self.site.double_redirects()
+            gen = pagegenerators.PreloadingGenerator(gen)
+            for redir_page in gen:
+                yield redir_page
 
     def get_moved_pages_redirects(self):
         """Generate redirects to recently-moved pages."""
@@ -417,7 +422,10 @@
             return lastmove.new_title()
 
     def delete_1_broken_redirect(self, redir_name):
-        redir_page = pywikibot.Page(self.site, redir_name)
+        if isinstance(redir_name, basestring):
+            redir_page = pywikibot.Page(self.site, redir_name)
+        else:
+            redir_page = redir_name
         # Show the title of the page we're working on.
         # Highlight the title in purple.
         pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
@@ -525,7 +533,10 @@
             self.fix_1_double_redirect(redir_name)
 
     def fix_1_double_redirect(self,  redir_name):
-        redir = pywikibot.Page(self.site, redir_name)
+        if isinstance(redir_name, basestring):
+            redir = pywikibot.Page(self.site, redir_name)
+        else:
+            redir = redir_name
         # Show the title of the page we're working on.
         # Highlight the title in purple.
         pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"

-- 
To view, visit https://gerrit.wikimedia.org/r/187695
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5570523c977578ad6db61425b3115e09de54fc5d
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to