Spaces:
Running
Running
# -*- coding:utf-8 -*- | |
# @Project :LPL | |
# @FileName :env.py | |
# @Time :2025/3/5 04:13 | |
# @Software :PyCharm | |
# @Author :Viper373 | |
# @Index :https://viper3.top | |
# @Blog :https://blog.viper3.top | |
import os | |
import re | |
import warnings | |
import orjson | |
import urllib3 | |
from dotenv import load_dotenv | |
from fake_useragent import UserAgent | |
from tool_utils.log_utils import RichLogger | |
rich_logger = RichLogger() | |
# 禁用安全警告 | |
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
warnings.filterwarnings("ignore", category=UserWarning) | |
# orjson配置选项 | |
ORJSON_OPTS = orjson.OPT_INDENT_2 | orjson.OPT_NON_STR_KEYS | orjson.OPT_APPEND_NEWLINE | |
# 项目根目录 | |
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
# 加载所有以 .env 开头的环境变量文件,优先加载 .env.local | |
env_files = [] | |
for file_name in os.listdir(project_root): | |
if re.match(r'^\.env($|\..*)', file_name): | |
env_files.append(file_name) | |
# 优先加载 .env.local,若不存在或失败则加载 .env | |
loaded = False | |
if '.env.local' in env_files: | |
env_path = os.path.join(project_root, '.env.local') | |
try: | |
if load_dotenv(env_path, override=True): | |
rich_logger.info(f"[env] 成功加载环境变量文件: {env_path}") | |
loaded = True | |
else: | |
rich_logger.warning(f"无法加载环境变量文件: {env_path}") | |
except Exception as e: | |
rich_logger.error(f"加载环境变量文件 {env_path} 失败: {e}") | |
if not loaded and '.env' in env_files: | |
env_path = os.path.join(project_root, '.env') | |
try: | |
if load_dotenv(env_path, override=True): | |
rich_logger.info(f"成功加载环境变量文件: {env_path}") | |
loaded = True | |
else: | |
rich_logger.warning(f"无法加载环境变量文件: {env_path}") | |
except Exception as e: | |
rich_logger.error(f"加载环境变量文件 {env_path} 失败: {e}") | |
if not loaded: | |
rich_logger.warning("未加载任何环境变量文件,将使用系统环境变量") | |
# 请求头配置 | |
UA = UserAgent().random | |
AUTHORIZATION = '7935be4c41d8760a28c05581a7b1f570' | |
GTK = "1568910741" | |
PROXIES = os.getenv('PROXIES') | |
# MYSQL 配置(从环境变量中读取) | |
MYSQL_CONFIG = { | |
'MYSQL_HOST': os.getenv('MYSQL_HOST'), | |
'MYSQL_PORT': int(os.getenv('MYSQL_PORT')), | |
'MYSQL_USER': os.getenv('MYSQL_USER'), | |
'MYSQL_PASSWORD': os.getenv('MYSQL_PASSWORD'), | |
'MYSQL_CHARSET': os.getenv('MYSQL_CHARSET'), | |
'MYSQL_DATABASE': os.getenv('MYSQL_DATABASE'), | |
} | |
MONGO_URI = os.getenv('MONGO_URI') | |
# 模型相关配置 | |
MODEL_PATH = os.path.join(project_root, 'static', 'saved_model', 'BILSTM_Att.pt') | |
# ENV相关配置 | |
ENV_SEASONS = os.path.join(project_root, 'Data_CrawlProcess', 'env.py') | |
# LPL相关配置 | |
LPL_DB = 'lpl' | |
LPL_COL_SEASON = 'seasons' | |
LPL_COL_BMATCH = 'bmatchids' | |
LPL_COL_MATCH = 'match_data' | |
# Wanplus相关配置 | |
WANPLUS_DB = 'wanplus' | |
WANPLUS_COL_EID = 'eids' | |
WANPLUS_COL_TEAM = 'teamids' | |
WANPLUS_COL_SCHEDULE = 'scheduleids' | |
WANPLUS_COL_BOID = 'boids' | |
WANPLUS_COL_MATCH = 'match_data' | |
# Other相关配置 | |
HERO_LIST = os.path.join(project_root, 'data', 'json', 'hero_list.json') | |
HERO_LOGO = os.path.join(project_root, 'data', 'json', 'hero_logo.json') | |
HERO_INFO = os.path.join(project_root, 'data', 'json', 'hero_info.json') | |
HERO_WIN_RATE = os.path.join(project_root, 'data', 'json', 'hero_win_rate.json') | |
TEAM_LIST = os.path.join(project_root, 'data', 'json', 'team_list.json') | |
# Concat相关配置 | |
DB1 = 'lpl' | |
COL1 = 'match_data' | |
DB2 = 'wanplus' | |
COL2 = 'match_data' | |
TARGET_DB = 'moba' | |
TARGET_COL = 'lol' | |
SEASONS = [ | |
{"name": "2025LPL第一赛段", "id": "218", "type": "97,100", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=218&stageIds=97,100"}, | |
{"name": "2025LPL第二赛段", "id": "218", "type": "98,102,103,104", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=218&stageIds=98,102,103,104"}, | |
{"name": "2024LPL春季赛", "id": "206", "type": "1,5", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=206&stageIds=1,5"}, | |
{"name": "季中冠军赛", "id": "208", "type": "28,89", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=208&stageIds=28,89"}, | |
{"name": "2024LPL夏季赛", "id": "206", "type": "90,91,92,8", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=206&stageIds=90,91,92,8"}, | |
{"name": "全球总决赛", "id": "212", "type": "28,77,18", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=212&stageIds=28,77,18"}, | |
{"name": "2023LPL春季赛", "id": "190", "type": "1,5", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=190&stageIds=1,5"}, | |
{"name": "季中冠军赛", "id": "194", "type": "28,85", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=194&stageIds=28,85"}, | |
{"name": "2023LPL夏季赛", "id": "190", "type": "7,8", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=190&stageIds=7,8"}, | |
{"name": "全球总决赛", "id": "201", "type": "18,28,77", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=201&stageIds=18,28,77"}, | |
{"name": "LPL春季赛", "id": "167", "type": "1,5", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=167&stageIds=1,5"}, | |
{"name": "季中冠军赛", "id": "175", "type": "19,55", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=175&stageIds=19,55"}, | |
{"name": "LPL夏季赛", "id": "167", "type": "7,8,9", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=167&stageIds=7,8,9"}, | |
{"name": "全球总决赛", "id": "184", "type": "18,19,28", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=184&stageIds=18,19,28"}, | |
{"name": "LPL春季赛", "id": "148", "type": "1,5", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=148&stageIds=1,5"}, | |
{"name": "LPL夏季赛", "id": "148", "type": "7,8", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=148&stageIds=7,8"}, | |
{"name": "全球总决赛", "id": "156", "type": "18,19,28", "url": "https://lpl.qq.com/web202301/rank.html?seasonId=156&stageIds=18,19,28"}, | |
{"name": "LPL春季赛", "id": "134", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=134&sGameType=1,5"}, | |
{"name": "LPL夏季赛", "id": "134", "type": "7,8", "url": "https://lpl.qq.com/es/data/rank.shtml?iGameId=134&sGameType=7,8"}, | |
{"name": "LPL春季赛", "id": "115", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=115&sGameType=1,5"}, | |
{"name": "LPL夏季赛", "id": "115", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=115&sGameType=7,8"}, | |
{"name": "LPL春季赛", "id": "95", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=95&sGameType=1,5"}, | |
{"name": "LPL夏季赛", "id": "95", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=95&sGameType=7,8"}, | |
{"name": "德玛西亚杯", "id": "132", "type": "19", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=132&sGameType=19"}, | |
{"name": "LPL春季赛", "id": "49", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=49&sGameType=1,5"}, | |
{"name": "LPL夏季赛", "id": "49", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=49&sGameType=7,8"}, | |
{"name": "LSPL春季赛", "id": "50", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=50&sGameType=1,5"}, | |
{"name": "LSPL夏季赛", "id": "50", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=50&sGameType=7,8"}, | |
{"name": "德玛西亚杯长沙站", "id": "70", "type": "18", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=70&sGameType=18"}, | |
{"name": "德玛西亚杯青岛站", "id": "93", "type": "18", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=93&sGameType=18"}, | |
{"name": "季中冠军赛", "id": "59", "type": "18,19", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=59&sGameType=18,19"}, | |
{"name": "2017全球总决赛", "id": "58", "type": "18,19", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=58&sGameType=18,19"}, | |
{"name": "LPL春季赛", "id": "16", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=16&sGameType=1,5"}, | |
{"name": "LPL夏季赛", "id": "16", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=16&sGameType=7,8"}, | |
{"name": "LSPL春季赛", "id": "17", "type": "1,5", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=17&sGameType=1,5"}, | |
{"name": "LSPL夏季赛", "id": "17", "type": "7,8", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=17&sGameType=7,8"}, | |
{"name": "季中冠军赛", "id": "26", "type": "18,19", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=26&sGameType=18,19"}, | |
{"name": "全球总决赛", "id": "38", "type": "18,19", "url": "//lpl.qq.com/es/data/rank.shtml?iGameId=38&sGameType=18,19"}, | |
] | |