# -*- coding: utf-8 -*- """ @File : __init__.py.py @Time : 2023/9/7 19:09 @Author : geekbing @LastEditTime : - @LastEditors : - @Description : - """ from backend import settings from record_proxy.record import Recorder async def start_proxy(log): """ 启动代理 :param log: 日志 :return: """ try: from mitmproxy import options from mitmproxy.tools.dump import DumpMaster except ImportError: log.bind(name=None).warning( "mitmproxy未安装,请参见: https://docs.mitmproxy.org/stable/overview-installation/" ) return addons = [Recorder()] try: opts = options.Options(listen_host="0.0.0.0", listen_port=settings.PROXY_PORT) m = DumpMaster(opts, with_termlog=False, with_dumper=False) block_addon = m.addons.get("block") m.addons.remove(block_addon) m.addons.add(*addons) log.bind(name=None).debug( f"proxy server is running at http://0.0.0.0:{settings.PROXY_PORT}" ) await m.run() except Exception as e: log.bind(name=None).error( f"proxy server running failed, if all nodes run failed, please check: {e}" )