APP_DEBUG = env.bool('APP_DEBUG', True if APP_ENV == DEV_MODE else False) APP_DEV = IS_DEV = APP_ENV == DEV_MODE APP_PROD = IS_PROD = APP_ENV == PROD_MODE APP_TEST = IS_TEST = APP_ENV == TEST_MODE # redis host REDIS_HOST = env.str('REDIS_HOST', '127.0.0.1') # redis port REDIS_PORT = env.int('REDIS_PORT', 6379) # redis password, if no password, set it to None REDIS_PASSWORD = env.str('REDIS_PASSWORD', None) # redis connection string, like redis://[password]@host:port or rediss://[password]@host:port REDIS_CONNECTION_STRING = env.str('REDIS_CONNECTION_STRING', None) if REDIS_CONNECTION_STRING: REDIS_HOST, REDIS_PORT, REDIS_PASSWORD = parse_redis_connection_string(REDIS_CONNECTION_STRING) # redis hash table key name REDIS_KEY = env.str('REDIS_KEY', 'proxies:universal') # definition of proxy scores PROXY_SCORE_MAX = 100 PROXY_SCORE_MIN = 0 PROXY_SCORE_INIT = 10 # definition of proxy number PROXY_NUMBER_MAX = 50000 PROXY_NUMBER_MIN = 0 # definition of tester cycle, it will test every CYCLE_TESTER second CYCLE_TESTER = env.int('CYCLE_TESTER', 20)
from environs import Env from loguru import logger from proxypool.utils.parse import parse_redis_connection_string env = Env() env.read_env() IS_WINDOWS = platform.system().lower() == 'windows' ROOT_DIR = dirname(dirname(abspath(__file__))) LOG_DIR = join(ROOT_DIR, env.str('LOG_DIR', 'logs')) # like redis://[password]@host:port/0 REDIS_URL = env.str('REDIS_URL', 'redis://@localhost:6379') REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_DB = parse_redis_connection_string(REDIS_URL) REDIS_KEY = env.str('REDIS_KEY', 'proxies') # proxy 分数设置 PROXY_SCORE_MAX = 100 PROXY_SCORE_MIN = 0 PROXY_SCORE_INIT = 10 PROXY_NUMBER_MAX = 50000 PROXY_NUMBER_MIN = 0 CYCLE_GETTER = env.int('CYCLE_GETTER', 100) CYCLE_TESTER = env.int('CYCLE_TESTER', 20) GET_TIMEOUT = env.int('GET_TIMEOUT', 10)