text: # -*- coding: utf-8 -*-
  """
  -------------------------------------------------
     File Name：     setting.py
     Description :   配置文件
     Author :        JHao
     date：          2019/2/15
  -------------------------------------------------
     Change Activity:
                     2019/2/15:
  -------------------------------------------------
  """
  
  import sys
  from os import getenv
  from logging import getLogger
  
  log = getLogger(__name__)
  
  HEADER = """
  ****************************************************************
  *** ______  ********************* ______ *********** _  ********
  *** | ___ \_ ******************** | ___ \ ********* | | ********
  *** | |_/ / \__ __   __  _ __   _ | |_/ /___ * ___  | | ********
  *** |  __/|  _// _ \ \ \/ /| | | ||  __// _ \ / _ \ | | ********
  *** | |   | | | (_) | >  < \ |_| || |  | (_) | (_) || |___  ****
  *** \_|   |_|  \___/ /_/\_\ \__  |\_|   \___/ \___/ \_____/ ****
  ****                       __ / /                          *****
  ************************* /___ / *******************************
  *************************       ********************************
  ****************************************************************
  """
  
  PY3 = sys.version_info >= (3,)
  
  DB_TYPE = getenv('db_type', 'SSDB').upper()
  DB_HOST = getenv('db_host', '127.0.0.1')
  # DB_PORT = getenv('db_port', 6379)
  DB_PORT = 6379
  DB_PASSWORD = getenv('db_password', '')
  
  
  """ 数据库配置 """
  DATABASES = {
      "default": {
          "TYPE": DB_TYPE,
          "HOST": DB_HOST,
          "PORT": DB_PORT,
          "NAME": "proxy",
          "PASSWORD": DB_PASSWORD
      }
  }
  
  # register the proxy getter function
  
  PROXY_GETTER = [
      "freeProxy01",
      # "freeProxy02",
      "freeProxy03",
      "freeProxy04",
      "freeProxy05",
      # "freeProxy06",
      "freeProxy07",
      # "freeProxy08",
      "freeProxy09",
      "freeProxy13",
      "freeProxy14",
      "freeProxy14",
  ]
  
  """ API config http://127.0.0.1:5010 """
  SERVER_API = {
      "HOST": "0.0.0.0",  # The ip specified which starting the web API
      "PORT": 5010  # port number to which the server listens to
  }
  
  
  class ConfigError(BaseException):
      pass
  
  
  def checkConfig():
      if DB_TYPE not in ["SSDB", "REDIS"]:
          raise ConfigError('db_type Do not support: %s, must SSDB/REDIS .' % DB_TYPE)
  
      if type(DB_PORT) == str and not DB_PORT.isdigit():
          raise ConfigError('if db_port is string, it must be digit, not %s' % DB_PORT)
  
      from ProxyGetter import getFreeProxy
      illegal_getter = list(filter(lambda key: not hasattr(getFreeProxy.GetFreeProxy, key), PROXY_GETTER))
      if len(illegal_getter) > 0:
          raise ConfigError("ProxyGetter: %s does not exists" % "/".join(illegal_getter))
  
  
  checkConfig()
  