jenkins-bot has submitted this change and it was merged.

Change subject: Add pagegenerator.py based argument handling to delete.py
......................................................................


Add pagegenerator.py based argument handling to delete.py

Added by request of infovarius

Corrected version of r78811

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

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/delete.py b/delete.py
index 5de27d7..d1e2c13 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,50 +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'):
-                pageName = pywikibot.input(u'Enter the page to delete:')
-            else:
-                pageName = arg[len('-page:'):]
         elif arg.startswith('-images'):
             doImages = True
             if len(arg) == len('-images'):
@@ -124,57 +94,41 @@
                 pageName = arg[len('-images'):]
         elif arg.startswith('-undelete'):
             undelete = True
-
+        else:
+            genFactory.handleArg(arg)
+        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')
     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)
-    elif doImages:
+    if 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:
+        summary = pywikibot.input(u'Enter a reason for the %sdeletion:'
+                                    % ['', 'un'][undelete])
+    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: merged
Gerrit-Change-Id: I386328c62b1bbeb7022a620f8e95d25a67686371
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/compat
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>
Gerrit-Reviewer: DrTrigon <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Merlijn van Deen <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to