Fix env to config.py

This commit is contained in:
EstrellaXD
2023-04-26 18:32:42 +08:00
parent 7dc6d8d8a5
commit 8e69506e77
2 changed files with 27 additions and 3 deletions

View File

@@ -47,8 +47,13 @@ def env_to_config() -> Setting:
for key, section in ENV_TO_ATTR.items():
for env, attr in section.items():
if env in os.environ:
attr_name = attr[0] if isinstance(attr, tuple) else attr
_settings[key][attr_name] = _val_from_env(env, attr)
if isinstance(attr, list):
for _attr in attr:
attr_name = _attr[0] if isinstance(_attr, tuple) else _attr
_settings[key][attr_name] = _val_from_env(env, _attr)
else:
attr_name = attr[0] if isinstance(attr, tuple) else attr
_settings[key][attr_name] = _val_from_env(env, attr)
return Setting(**_settings)

View File

@@ -67,7 +67,10 @@ ENV_TO_ATTR = {
},
"rss_parser": {
"AB_RSS_COLLECTOR": ("enable", lambda e: e.lower() in ("true", "1", "t")),
"AB_RSS": ("token", lambda e: parse_qs(urlparse(e).query).get("token", [None])[0]),
"AB_RSS": [
("token", lambda e: parse_qs(urlparse(e).query).get("token", [None])[0]),
("custom_url", lambda e: urlparse(e).netloc),
],
"AB_NOT_CONTAIN": ("filter", lambda e: e.split("|")),
"AB_LANGUAGE": "language",
"AB_ENABLE_TMDB": ("enable_tmdb", lambda e: e.lower() in ("true", "1", "t")),
@@ -82,6 +85,22 @@ ENV_TO_ATTR = {
"log": {
"AB_DEBUG_MODE": ("debug_enable", lambda e: e.lower() in ("true", "1", "t")),
},
"proxy": {
"AB_HTTP_PROXY": [
("enable", lambda e: True),
("type", lambda e: "http"),
("host", lambda e: e.split(":")[0]),
("port", lambda e: int(e.split(":")[1])),
],
"AB_SOCKS": [
("enable", lambda e: True),
("type", lambda e: "socks"),
("host", lambda e: e.split(",")[0]),
("port", lambda e: int(e.split(",")[1])),
("username", lambda e: e.split(",")[2]),
("password", lambda e: e.split(",")[3]),
],
},
}