Use ThrowingArgumentParser in bling plugin.
authorCMDR furrycat <elite@furrycat.net>
Thu, 10 Nov 2016 08:27:42 +0000 (08:27 +0000)
committerCMDR furrycat <elite@furrycat.net>
Thu, 10 Nov 2016 14:21:35 +0000 (14:21 +0000)
plugin/bling/bling.py

index 40408d2..8f6c79d 100644 (file)
@@ -1,4 +1,3 @@
-import argparse
 import asyncio
 import glob
 import io
@@ -9,6 +8,7 @@ import shlex
 from PIL import Image
 
 from plugins import PluginCommand
+from throwingargparse import ArgumentParserError, ThrowingArgumentParser
 import bot
 import cat
 
@@ -64,11 +64,15 @@ class Bling(object):
 
   @asyncio.coroutine
   def bling(self, message, args):
-    ap = argparse.ArgumentParser()
+    ap = ThrowingArgumentParser()
     ap.add_argument('--profiles', action='store_true')
     ap.add_argument('--profile', nargs='?')
     ap.add_argument('name', nargs='?')
-    parsed = ap.parse_args(args)
+    try:
+      parsed = ap.parse_args(args)
+    except ArgumentParserError:
+      yield from cat.yelp(message.channel)
+      return
 
     if parsed.profiles:
       yield from self.list_profiles(message)