Browse Source

微瞳移动号码使用 Ansjer 签名

locky 4 months ago
parent
commit
cf73497f67
2 changed files with 22 additions and 4 deletions
  1. 1 1
      Controller/UserController.py
  2. 21 3
      Service/CommonService.py

+ 1 - 1
Controller/UserController.py

@@ -885,7 +885,7 @@ class v2authCodeView(TemplateView):
         elif phone is not None:
             phone = phone.strip()
             # 短信签名
-            sign_name = CommonService.confirm_msg_sign_name(sign_name)
+            sign_name = CommonService.confirm_msg_sign_name(sign_name, phone)
 
             if country_code is None:
                 return self.phoneCode(phone, response, sign_name)

+ 21 - 3
Service/CommonService.py

@@ -1,6 +1,7 @@
 import base64
 import calendar
 import datetime
+import re
 import time
 from base64 import encodebytes
 from distutils.version import LooseVersion
@@ -892,21 +893,38 @@ GCqvlyw5dfxNA+EtxNE2wCW/LW7ENJlACgcfgPlBZtpLheWoZB/maw4=
                 'servers@ansjer.com')
             pass
 
-    @staticmethod
-    def confirm_msg_sign_name(sign_name):
+    @classmethod
+    def confirm_msg_sign_name(cls, sign_name, phone=''):
         """
         确认短信签名
         @param sign_name: app签名标识
+        @param phone: 手机号
         @return:
         """
         if sign_name == 'zosi':
             sign_name = '周视'
         elif sign_name == 'vsees':
-            sign_name = '微瞳'
+            # 微瞳移动号码使用 Ansjer 签名
+            is_china_mobile = cls.is_china_mobile(phone)
+            if is_china_mobile:
+                sign_name = 'Ansjer'
+            else:
+                sign_name = '微瞳'
         else:
             sign_name = 'Ansjer'
         return sign_name
 
+    @staticmethod
+    def is_china_mobile(phone):
+        """
+        检查手机号码是否属于中国移动
+        :param phone: 手机号码字符串(11位数字)
+        :return: 如果是移动号码返回True,否则False
+        """
+        # 正则表达式匹配中国移动号段
+        pattern = r'^1(3[4-9]|4[7]|5[0-27-9]|7[28]|8[2-47-8]|9[58])\d{8}$'
+        return bool(re.fullmatch(pattern, phone))
+
     @staticmethod
     def confirm_msg_sign_name_with_phone(phone):
         """