Ladsgroup has uploaded a new change for review.

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


Change subject: Adding pagegenerator per request of a user in wikimania 
(corrected version of r78811 I couldn't amend because I used master branch)
......................................................................

Adding pagegenerator per request of a user in wikimania (corrected version of 
r78811 I couldn't amend because I used master branch)

Change-Id: I386328c62b1bbeb7022a620f8e95d25a67686371
---
M delete.py
1 file changed, 24 insertions(+), 61 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/compat 
refs/changes/65/79465/1

diff --git a/delete.py b/delete.py
index 5de27d7..cd7ce99 100644
--- a/delete.py
+++ b/delete.py
@@ -59,6 +59,7 @@
                 page.delete(self.summary, not self.always, throttle = True)
 
 def main():
+    genFactory = pagegenerators.GeneratorFactory()
     pageName = ''
     singlePage = ''
     summary = ''
@@ -71,44 +72,19 @@
     doImages = False
     undelete = False
     fileName = ''
-    gen = None
+    generator = None
 
     # read command line parameters
     for arg in pywikibot.handleArgs():
         if arg == '-always':
             always = True
-        elif arg.startswith('-file'):
-            if len(arg) == len('-file'):
-                fileName = pywikibot.input(
-                    u'Enter name of file to delete pages from:')
-            else:
-                fileName = arg[len('-file:'):]
         elif arg.startswith('-summary'):
             if len(arg) == len('-summary'):
                 summary = pywikibot.input(u'Enter a reason for the deletion:')
             else:
                 summary = arg[len('-summary:'):]
-        elif arg.startswith('-cat'):
-            doCategory = True
-            if len(arg) == len('-cat'):
-                pageName = pywikibot.input(
-                    u'Enter the category to delete from:')
-            else:
-                pageName = arg[len('-cat:'):]
         elif arg.startswith('-nosubcats'):
             deleteSubcategories = False
-        elif arg.startswith('-links'):
-            doLinks = True
-            if len(arg) == len('-links'):
-                pageName = pywikibot.input(u'Enter the page to delete from:')
-            else:
-                pageName = arg[len('-links:'):]
-        elif arg.startswith('-ref'):
-            doRef = True
-            if len(arg) == len('-ref'):
-                pageName = pywikibot.input(u'Enter the page to delete from:')
-            else:
-                pageName = arg[len('-ref:'):]
         elif arg.startswith('-page'):
             doSinglePage = True
             if len(arg) == len('-page'):
@@ -124,57 +100,44 @@
                 pageName = arg[len('-images'):]
         elif arg.startswith('-undelete'):
             undelete = True
-
+        else:
+            genFactory.handleArg(arg)
     mysite = pywikibot.getSite()
     if doSinglePage:
         if not summary:
             summary = pywikibot.input(u'Enter a reason for the %sdeletion:'
                                       % ['', 'un'][undelete])
         page = pywikibot.Page(mysite, pageName)
-        gen = iter([page])
-    elif doCategory:
-        if not summary:
-            summary = i18n.twtranslate(mysite, 'delete-from-category',
-                                       {'page': pageName})
-        ns = mysite.category_namespace()
-        categoryPage = catlib.Category(mysite, ns + ':' + pageName)
-        gen = pagegenerators.CategorizedPageGenerator(
-            categoryPage, recurse=deleteSubcategories)
-    elif doLinks:
-        if not summary:
-            summary = i18n.twtranslate(mysite, 'delete-linked-pages',
-                                       {'page': pageName})
-        pywikibot.setAction(summary)
-        linksPage = pywikibot.Page(mysite, pageName)
-        gen = pagegenerators.LinkedPageGenerator(linksPage)
-    elif doRef:
-        if not summary:
-            summary = i18n.twtranslate(mysite, 'delete-referring-pages',
-                                       {'page': pageName})
-        refPage = pywikibot.Page(mysite, pageName)
-        gen = pagegenerators.ReferringPageGenerator(refPage)
-    elif fileName:
-        if not summary:
-            summary = i18n.twtranslate(mysite, 'delete-from-file')
-        gen = pagegenerators.TextfilePageGenerator(fileName)
+        generator = iter([page])
     elif doImages:
         if not summary:
             summary = i18n.twtranslate(mysite, 'delete-images',
                                        {'page': pageName})
         page = pywikibot.Page(mysite, pageName)
-        gen = pagegenerators.ImagesPageGenerator(page)
-
-    if gen:
+        generator = pagegenerators.ImagesPageGenerator(page)
+    if not summary:
+        if arg.startswith('-category'):
+            summary = i18n.twtranslate(mysite, 'delete-from-category',{'page': 
pageName})
+        elif arg.startswith('-links'):
+            summary = i18n.twtranslate(mysite, 'delete-linked-pages', {'page': 
pageName})
+        elif arg.startswith('-ref'):
+            summary = i18n.twtranslate(mysite, 'delete-referring-pages', 
{'page': pageName})
+        elif arg.startswith('-file'):
+            summary = i18n.twtranslate(mysite, 'delete-from-file') 
+    if not generator:
+        generator = genFactory.getCombinedGenerator()
+    if not generator:
+        # syntax error, show help text from the top of this file
+        pywikibot.showHelp('delete')
+        return
+    if generator:
         pywikibot.setAction(summary)
         # We are just deleting pages, so we have no need of using a preloading
         # page generator to actually get the text of those pages.
-        bot = DeletionRobot(gen, summary, always, undelete)
+        bot = DeletionRobot(generator, summary, always, undelete)
         bot.run()
-    else:
-        pywikibot.showHelp(u'delete')
-
 if __name__ == "__main__":
     try:
         main()
     finally:
-        pywikibot.stopme()
+        pywikibot.stopme()
\ No newline at end of file

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I386328c62b1bbeb7022a620f8e95d25a67686371
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/compat
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>

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

Reply via email to