架构修改,删除Edge浏览器支持,配置可以自己保存

This commit is contained in:
2022-07-13 15:05:42 +08:00
parent becd46e4f9
commit 134cf0186a
17 changed files with 283 additions and 235 deletions

79
core/manager.py Normal file
View File

@ -0,0 +1,79 @@
import logging
from urllib.parse import urlparse
from common import Singleton
from common.items import TabInfo
from config import ConfigManager
from browser import BrowserManager
from proxy import ProxyManager
_log = logging.getLogger("CoreManager")
_log.setLevel(logging.DEBUG)
class CoreManager(metaclass=Singleton):
config_manager: "ConfigManager"
browser_manager: "BrowserManager"
proxy_manager: "ProxyManager"
def __del__(self):
"""
析构CoreManager需要gracefully shutdown
"""
_log.debug("析构开始")
try:
_log.debug("析构浏览器管理器")
self.browser_manager.terminate()
except:
pass
finally:
_log.debug("析构浏览器管理器完毕")
try:
_log.debug("析构Mitm代理管理器")
self.proxy_manager.terminate()
except:
pass
finally:
_log.debug("析构Mitm代理管理器完毕")
def __init__(self):
"""
初始化CoreManager初始化所有模块
"""
_log.debug("初始化配置管理器")
self.config_manager = ConfigManager()
_log.info("初始化配置管理器完毕")
_log.debug("初始化Mitm代理管理器")
self.proxy_manager = ProxyManager(self.config_manager)
self.proxy_manager.start_loop()
_log.info("初始化Mitm代理管理器完毕")
_log.debug("初始化浏览器管理器")
self.browser_manager = BrowserManager(self.config_manager)
_log.info("初始化浏览器管理器完毕")
self._open_config_tabs()
def restart(self):
"""服务有问题?重启一下把"""
self.__del__()
self.__init__()
def open_tab(self, tab_info: "TabInfo"):
self.browser_manager.open_tab(tab_info)
def close_tab(self, tab_info: "TabInfo"):
self.browser_manager.close_tab(tab_info)
def _open_config_tabs(self):
rooms = self.config_manager.config["douyin"]["rooms"]
if type(rooms) is not list:
rooms = [rooms]
for room in rooms:
if not urlparse(room).scheme:
# 单独的房间号
live_url = "https://live.douyin.com/" + room
else:
live_url = room
tab_info = TabInfo()
tab_info.url = live_url
tab_info.tab_type = TabInfo.TAB_TYPE_LIVE
self.open_tab(tab_info)