62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
def _load_dotenv():
|
|
env_path = Path(".env")
|
|
if not env_path.is_file():
|
|
return
|
|
with open(env_path, encoding="utf-8") as f:
|
|
for line in f:
|
|
line = line.strip()
|
|
if not line or line.startswith("#") or "=" not in line:
|
|
continue
|
|
key, _, value = line.partition("=")
|
|
key = key.strip()
|
|
value = value.strip().strip("\"'")
|
|
if key and key not in os.environ:
|
|
os.environ[key] = value
|
|
|
|
_load_dotenv()
|
|
|
|
class ServerConfig:
|
|
def __init__(self):
|
|
pass
|
|
|
|
### Адрес сервера
|
|
host = os.getenv("host") or "0.0.0.0"
|
|
|
|
### Для мобилок
|
|
oneme_tcp_port = int(os.getenv("oneme_tcp_port") or 443)
|
|
tamtam_tcp_port = int(os.getenv("tamtam_tcp_port") or 4433)
|
|
|
|
### Шлюзы для веба
|
|
oneme_ws_port = int(os.getenv("oneme_ws_port") or 81)
|
|
tamtam_ws_port = int(os.getenv("tamtam_ws_port") or 82)
|
|
|
|
### Уровень отладки
|
|
log_level = os.getenv("log_level") or "debug"
|
|
|
|
### Тип базы данных
|
|
db_type = os.getenv("db_type") or "mysql"
|
|
|
|
### MySQL
|
|
db_host = os.getenv("db_host") or "127.0.0.1"
|
|
db_port = int(os.getenv("db_port") or 3306)
|
|
db_user = os.getenv("db_user") or "root"
|
|
db_password = os.getenv("db_password") or "qwerty"
|
|
db_name = os.getenv("db_name") or "openmax"
|
|
|
|
### SQLite
|
|
db_file = os.getenv("db_file") or "openmax.db"
|
|
|
|
### SSL
|
|
certfile = os.getenv("certfile") or "cert.pem"
|
|
keyfile = os.getenv("keyfile") or "key.pem"
|
|
|
|
### Avatar base url
|
|
avatar_base_url = os.getenv("avatar_base_url") or "http://127.0.0.1/avatar/"
|
|
|
|
### Telegram bot
|
|
telegram_bot_token = os.getenv("telegram_bot_token") or "123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
telegram_bot_enabled = bool(os.getenv("telegram_bot_enabled")) or True
|
|
telegram_whitelist_ids = [x.strip() for x in os.getenv("telegram_whitelist_ids", "").split(",") if x.strip()] |