mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-16 12:51:35 +00:00
059bcd5e70
* 🔧 使用 dotenv 重构 config
默认配置从 config.json 移动到 config.py 中。如果要覆盖默认配置,在根目录创建
.env 文件按照 .env.example 的例子编辑。
这个方案的优点是:
* 支持写注释
* 以后如果新增配置项,如果用默认值就可以,不需要修改 .env 文件
* 如果通过 serverless、docker 或者 k8s 部署,方便不用修改文件,直接注入环境变量
修改配置
61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
import os
|
|
from typing import Any
|
|
|
|
import ujson
|
|
from dotenv import load_dotenv
|
|
|
|
from utils.storage import Storage
|
|
|
|
# take environment variables from .env.
|
|
load_dotenv()
|
|
|
|
env = os.getenv
|
|
|
|
def str_to_bool(value: Any) -> bool:
|
|
"""Return whether the provided string (or any value really) represents true. Otherwise false.
|
|
Just like plugin server stringToBoolean.
|
|
"""
|
|
if not value:
|
|
return False
|
|
return str(value).lower() in ("y", "yes", "t", "true", "on", "1")
|
|
|
|
_config = {
|
|
"debug": str_to_bool(os.getenv('DEBUG', 'True')),
|
|
|
|
"mysql": {
|
|
"host": env("DB_HOST", "127.0.0.1"),
|
|
"port": int(env("DB_PORT", "3306")),
|
|
"user": env("DB_USERNAME"),
|
|
"password": env("DB_PASSWORD"),
|
|
"database": env("DB_DATABASE"),
|
|
},
|
|
|
|
"redis": {
|
|
"host": env("REDIS_HOST", "127.0.0.1"),
|
|
"port": int(env("REDIS_PORT", "6369")),
|
|
"database": int(env("REDIS_DB", "0")),
|
|
},
|
|
|
|
# 联系 https://t.me/BotFather 使用 /newbot 命令创建机器人并获取 token
|
|
"bot_token": env("BOT_TOKEN"),
|
|
|
|
# 记录错误并发送消息通知开发人员
|
|
"error_notification_chat_id": env("ERROR_NOTIFICATION_CHAT_ID"),
|
|
|
|
# 文章推送群组
|
|
"channels": [
|
|
# {"name": "", "chat_id": 1},
|
|
# 在环境变量里的格式是 json: [{"name": "", "chat_id": 1}]
|
|
*ujson.loads(env('CHANNELS', '[]'))
|
|
],
|
|
|
|
# bot 管理员
|
|
"admins": [
|
|
# {"username": "", "user_id": 123},
|
|
# 在环境变量里的格式是 json: [{"username": "", "user_id": 1}]
|
|
*ujson.loads(env('ADMINS', '[]'))
|
|
],
|
|
}
|
|
|
|
config = Storage(_config)
|