From a85054e41786dfe86e226a65731c5c77faf62190 Mon Sep 17 00:00:00 2001 From: jingrow Date: Sun, 13 Apr 2025 17:35:43 +0800 Subject: [PATCH] fix aliyun sms error popup --- jcloud/api/aliyun_sms.py | 38 +++++++++++++++++++++++--------------- jcloud/translations/zh.csv | 7 ++++++- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/jcloud/api/aliyun_sms.py b/jcloud/api/aliyun_sms.py index f44b7d8..437f478 100644 --- a/jcloud/api/aliyun_sms.py +++ b/jcloud/api/aliyun_sms.py @@ -30,12 +30,19 @@ class AliyunSMSClient: def initialize(self): """初始化配置信息""" try: - settings = jingrow.get_single("Jcloud Settings") - self.access_key_id = settings.get("aliyun_access_key_id") - self.access_secret = settings.get_password("aliyun_access_secret") + # 检查 Jcloud Settings 是否存在 + if jingrow.exists("Jcloud Settings"): + settings = jingrow.get_single("Jcloud Settings") + self.access_key_id = settings.get("aliyun_access_key_id") + self.access_secret = settings.get_password("aliyun_access_secret") if settings.get("aliyun_access_secret") else None + else: + # 设置默认值 + self.access_key_id = None + self.access_secret = None + jingrow.log_error("阿里云SMS客户端: Jcloud Settings 尚未配置,请在设置中完成配置") except Exception as e: - jingrow.log_error(f"阿里云SMS客户端初始化失败: {str(e)}") + jingrow.log_error(f"阿里云SMS客户端初始化: {str(e)}") self.access_key_id = None self.access_secret = None @@ -125,12 +132,19 @@ class AliyunSMSClient: signature = base64.b64encode(h.digest()).decode() return signature -# 创建单例实例 -sms_client = AliyunSMSClient.get_instance() +# 改为在首次调用时初始化 +sms_client = None + +def get_sms_client(): + """获取短信客户端实例,确保在首次调用时才初始化""" + global sms_client + if sms_client is None: + sms_client = AliyunSMSClient.get_instance() + return sms_client def send_custom_sms(phone_numbers, message_content, sign_name, template_code): - - return sms_client.send_sms(phone_numbers, template_code, message_content, sign_name) + client = get_sms_client() + return client.send_sms(phone_numbers, template_code, message_content, sign_name) def generate_verification_code(length=4): """生成指定长度的随机数字验证码""" @@ -164,10 +178,4 @@ def send_renew_sms(phone_numbers, days_remaining, site_end_date): "site_end_date": str(site_end_date) } - return send_custom_sms(phone_numbers, message_content, sign_name, template_code) - -# 在模块导入时初始化客户端 -try: - sms_client = AliyunSMSClient.get_instance() -except Exception as e: - jingrow.log_error(f"阿里云SMS客户端自动初始化失败: {str(e)}") \ No newline at end of file + return send_custom_sms(phone_numbers, message_content, sign_name, template_code) \ No newline at end of file diff --git a/jcloud/translations/zh.csv b/jcloud/translations/zh.csv index 8ea1358..8a50ece 100644 --- a/jcloud/translations/zh.csv +++ b/jcloud/translations/zh.csv @@ -80,7 +80,7 @@ Developer,开发者, Disabled,禁用, Document Name,文档名称, Document Type,文档类型, -Domain,领域, +Domain,主域名, Domains,域, Download,下载, Draft,草案, @@ -337,5 +337,10 @@ Marketplace Commission,应用市场佣金, App Include Scripts,应用包含脚本, Adds this script to app_include_js via site config. Used for in-site billing, Github PAT Token,GitHub PAT令牌, +Infrastructure,基础设施, +Feature Flags,其他功能, +Partner,合作伙伴, +Hybrid Server,混合服务器, +