old_contents: # -*- coding: utf-8 -*-
  """Backscatter.io Module."""
  import json
  try:
      from backscatter import Backscatter
  except ImportError:
      print("Backscatter.io library not installed.")
  
  misperrors = {'error': 'Error'}
  mispattributes = {'input': ['ip-src', 'ip-dst'], 'output': ['freetext']}
  moduleinfo = {'version': '1', 'author': 'brandon@backscatter.io',
                'description': 'Backscatter.io module to bring mass-scanning observations into MISP.',
                'module-type': ['expansion', 'hover']}
  moduleconfig = ['api_key']
  query_playbook = [
      {'inputs': ['ip-src', 'ip-dst'],
       'services': ['observations', 'enrichment'],
       'name': 'generic'}
  ]
  
  
  def check_query(request):
      """Check the incoming request for a valid configuration."""
      output = {'success': False}
      config = request.get('config', None)
      if not config:
          misperrors['error'] = "Configuration is missing from the request."
          return output
      for item in moduleconfig:
          if config.get(item, None):
              continue
          misperrors['error'] = "Backscatter.io authentication is missing."
          return output
      if not request.get('ip-src') and request.get('ip-dst'):
          misperrors['error'] = "Unsupported attributes type."
          return output
      profile = {'success': True, 'config': config, 'playbook': 'generic'}
      if 'ip-src' in request:
          profile.update({'value': request.get('ip-src')})
      else:
          profile.update({'value': request.get('ip-dst')})
      return profile
  
  
  def handler(q=False):
      """Handle gathering data."""
      if not q:
          return q
      request = json.loads(q)
      checks = check_query(request)
      if not checks['success']:
          return misperrors
  
      output = {'results': list()}
  
      try:
          bs = Backscatter(checks['config']['api_key'])
          response = bs.get_observations(query=output['value'], query_type='ip')
          if not response['success']:
              misperrors['error'] = '%s: %s' % (response['error'], response['message'])
              return misperrors
          r = {'results': [{'types': mispattributes['output'], 'values': [str(response)]}]}
      except Exception, e:
          misperrors['error'] = str(e)
          return misperrors
  
      return output
  
  
  def introspection():
      return mispattributes
  
  
  def version():
      moduleinfo['config'] = moduleconfig
      return moduleinfo
  
  
new_contents: # -*- coding: utf-8 -*-
  """Backscatter.io Module."""
  import json
  try:
      from backscatter import Backscatter
  except ImportError:
      print("Backscatter.io library not installed.")
  
  misperrors = {'error': 'Error'}
  mispattributes = {'input': ['ip-src', 'ip-dst'], 'output': ['freetext']}
  moduleinfo = {'version': '1', 'author': 'brandon@backscatter.io',
                'description': 'Backscatter.io module to bring mass-scanning observations into MISP.',
                'module-type': ['expansion', 'hover']}
  moduleconfig = ['api_key']
  query_playbook = [
      {'inputs': ['ip-src', 'ip-dst'],
       'services': ['observations', 'enrichment'],
       'name': 'generic'}
  ]
  
  
  def check_query(request):
      """Check the incoming request for a valid configuration."""
      output = {'success': False}
      config = request.get('config', None)
      if not config:
          misperrors['error'] = "Configuration is missing from the request."
          return output
      for item in moduleconfig:
          if config.get(item, None):
              continue
          misperrors['error'] = "Backscatter.io authentication is missing."
          return output
      if not request.get('ip-src') and request.get('ip-dst'):
          misperrors['error'] = "Unsupported attributes type."
          return output
      profile = {'success': True, 'config': config, 'playbook': 'generic'}
      if 'ip-src' in request:
          profile.update({'value': request.get('ip-src')})
      else:
          profile.update({'value': request.get('ip-dst')})
      return profile
  
  
  def handler(q=False):
      """Handle gathering data."""
      if not q:
          return q
      request = json.loads(q)
      checks = check_query(request)
      if not checks['success']:
          return misperrors
  
      try:
          bs = Backscatter(checks['config']['api_key'])
          response = bs.get_observations(query=output['value'], query_type='ip')
          if not response['success']:
              misperrors['error'] = '%s: %s' % (response['error'], response['message'])
              return misperrors
          output = {'results': [{'types': mispattributes['output'], 'values': [str(response)]}]}
      except Exception, e:
          misperrors['error'] = str(e)
          return misperrors
  
      return output
  
  
  def introspection():
      return mispattributes
  
  
  def version():
      moduleinfo['config'] = moduleconfig
      return moduleinfo
  
  
subject: Use the write var on return