Added orbital and large flags.
authorCMDR furrycat <elite@furrycat.net>
Sun, 6 Nov 2016 18:07:34 +0000 (18:07 +0000)
committerCMDR furrycat <elite@furrycat.net>
Sun, 6 Nov 2016 18:07:34 +0000 (18:07 +0000)
plugin/shopping/shopping.py

index cfde0e4..e08c8e8 100644 (file)
@@ -37,7 +37,7 @@ class Shopping(object):
   def handle_help(self, message, *args):
     lines = [
       '{} can help you find ships, modules and commodities.'.format(client.user.mention),
-      '```shopping [discounted] [near SYSTEM] [SHIPS] [MODULES] [COMMODITIES]```',
+      '```shopping [discounted] [large] [orbital] [near SYSTEM] [SHIPS] [MODULES] [COMMODITIES]```',
       '```',
       'discounted',
       '```',
@@ -47,6 +47,16 @@ class Shopping(object):
       'Search for stations close to `SYSTEM`.',
       '',
       '```',
+      'large',
+      '```',
+      'Require stations with a large pad.',
+      '',
+      '```',
+      'orbital',
+      '```',
+      'Require orbital stations (not planetary).',
+      '',
+      '```',
       'SHIPS',
       '```',
       'One or more ships to find.',
@@ -86,6 +96,10 @@ class Shopping(object):
         except IndexError:
           yield from bot.say(message.channel, 'Where?')
           return
+      elif arg == 'large':
+        params['large'] = True
+      elif arg == 'orbital':
+        params['orbital'] = True
       else:
         names.append(args[i])
       i += 1
@@ -285,7 +299,7 @@ class Shopping(object):
     return text
 
   @asyncio.coroutine
-  def find_shopping_stations(self, message, names, *, discount = False, system = None):
+  def find_shopping_stations(self, message, names, *, discount = False, large = False, orbital = False, system = None):
     log.info('Shopping for {}; discount={}; system={}.'.format(', '.join(names), discount, system))
     params = yield from self.build_shopping_list(message, names)
     if params is None:
@@ -316,6 +330,11 @@ class Shopping(object):
       # LYR.
       params['powerIds'] = 9
 
+    if large:
+      params['max_landing_pad_size'] = 30
+
+    params['includePlanetary'] = '0' if orbital else '1'
+
     log.info(params)
     lines = []
     for station in self.find_station(params, 'system'):