config.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from dotenv import load_dotenv
  2. import os
  3. import sys
  4. from logger import logging
  5. class Config:
  6. def __init__(self):
  7. # 获取应用程序的根目录路径
  8. if getattr(sys, "frozen", False):
  9. # 如果是打包后的可执行文件
  10. application_path = os.path.dirname(sys.executable)
  11. else:
  12. # 如果是开发环境
  13. application_path = os.path.dirname(os.path.abspath(__file__))
  14. # 指定 .env 文件的路径
  15. dotenv_path = os.path.join(application_path, ".env")
  16. if not os.path.exists(dotenv_path):
  17. raise FileNotFoundError(f"文件 {dotenv_path} 不存在")
  18. # 加载 .env 文件
  19. load_dotenv(dotenv_path)
  20. self.temp_mail = os.getenv("TEMP_MAIL", "").strip().split("@")[0]
  21. self.domain = os.getenv("DOMAIN", "").strip()
  22. self.check_config()
  23. def get_temp_mail(self):
  24. return self.temp_mail
  25. def get_domain(self):
  26. return self.domain
  27. def check_config(self):
  28. if not self.check_is_valid(self.temp_mail):
  29. raise ValueError("临时邮箱未配置,请在 .env 文件中设置 TEMP_MAIL")
  30. if not self.check_is_valid(self.domain):
  31. raise ValueError("域名未配置,请在 .env 文件中设置 DOMAIN")
  32. def check_is_valid(self, str):
  33. return len(str.strip()) > 0
  34. def print_config(self):
  35. logging.info(f"\033[32m临时邮箱: {self.temp_mail}\033[0m")
  36. logging.info(f"\033[32m域名: {self.domain}\033[0m")
  37. # 使用示例
  38. if __name__ == "__main__":
  39. try:
  40. config = Config()
  41. print("环境变量加载成功!")
  42. config.get_temp_mail()
  43. config.get_domain()
  44. except ValueError as e:
  45. print(f"错误: {e}")