Bläddra i källkod

feat: 直接注册

cheng zhen 1 år sedan
förälder
incheckning
b7cd4bd55b
1 ändrade filer med 57 tillägg och 71 borttagningar
  1. 57 71
      cursor_pro_keep_alive.py

+ 57 - 71
cursor_pro_keep_alive.py

@@ -29,34 +29,6 @@ logging.basicConfig(
 )
 )
 
 
 
 
-def load_config():
-    """加载配置文件"""
-    config = ConfigParser()
-
-    # 获取程序运行的实际目录
-    if getattr(sys, "frozen", False):
-        # 打包后的情况:使用可执行文件所在目录
-        root_dir = os.path.dirname(sys.executable)
-    else:
-        # 开发环境:使用当前工作目录
-        root_dir = os.getcwd()
-
-    config_path = os.path.join(root_dir, "config.ini")
-
-    if os.path.exists(config_path):
-        config.read(config_path, encoding="utf-8")
-        print(f"已加载配置文件: {config_path}")
-        print(config["Account"]["email"])
-        return {
-            "account": config["Account"]["email"],
-            "password": config["Account"]["password"],
-            "first_name": config["Account"]["first_name"],
-            "last_name": config["Account"]["last_name"],
-        }
-
-    raise FileNotFoundError(f"配置文件不存在: {config_path}")
-
-
 def handle_turnstile(tab):
 def handle_turnstile(tab):
     """处理 Turnstile 验证"""
     """处理 Turnstile 验证"""
     print("准备处理验证")
     print("准备处理验证")
@@ -168,7 +140,7 @@ def delete_account(browser, tab):
             print(e)
             print(e)
 
 
     handle_turnstile(tab)
     handle_turnstile(tab)
-    time.sleep(random.uniform(1, 3))
+    time.sleep(5)
     # tab.get_screenshot('sign-in_success.png')
     # tab.get_screenshot('sign-in_success.png')
     # print("登录账户截图")
     # print("登录账户截图")
 
 
@@ -219,7 +191,6 @@ def get_cursor_session_token(tab):
     """获取cursor session token"""
     """获取cursor session token"""
     cookies = tab.cookies()
     cookies = tab.cookies()
     cursor_session_token = None
     cursor_session_token = None
-    time.sleep(3)
     for cookie in cookies:
     for cookie in cookies:
         if cookie["name"] == "WorkosCursorSessionToken":
         if cookie["name"] == "WorkosCursorSessionToken":
             cursor_session_token = cookie["value"].split("%3A%3A")[1]
             cursor_session_token = cookie["value"].split("%3A%3A")[1]
@@ -307,14 +278,16 @@ def sign_up_account(browser, tab):
             print(e)
             print(e)
 
 
     handle_turnstile(tab)
     handle_turnstile(tab)
-
     time.sleep(random.uniform(1, 3))
     time.sleep(random.uniform(1, 3))
     print("进入设置页面")
     print("进入设置页面")
     tab.get(settings_url)
     tab.get(settings_url)
     try:
     try:
-        usage_ele = tab.ele(
-            "xpath:/html/body/main/div/div/div/div/div/div[2]/div/div/div/div[1]/div[1]/span[2]"
+        usage_selector = (
+            "css:div.col-span-2 > div > div > div > div > "
+            "div:nth-child(1) > div.flex.items-center.justify-between.gap-2 > "
+            "span.font-mono.text-sm\\/\\[0\\.875rem\\]"
         )
         )
+        usage_ele = tab.ele(usage_selector)
         if usage_ele:
         if usage_ele:
             usage_info = usage_ele.text
             usage_info = usage_ele.text
             total_usage = usage_info.split("/")[-1].strip()
             total_usage = usage_info.split("/")[-1].strip()
@@ -326,6 +299,7 @@ def sign_up_account(browser, tab):
     print("注册完成")
     print("注册完成")
     print("Cursor 账号: " + account)
     print("Cursor 账号: " + account)
     print("       密码: " + password)
     print("       密码: " + password)
+    time.sleep(5)
     return True
     return True
 
 
 
 
@@ -346,6 +320,40 @@ def cleanup_temp_files():
         logging.warning(f"清理临时文件失败: {str(e)}")
         logging.warning(f"清理临时文件失败: {str(e)}")
 
 
 
 
+class EmailGenerator:
+    def __init__(
+        self,
+        domain="mailto.plus",
+        password="".join(
+            random.choices(
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*",
+                k=12,
+            )
+        ),
+        first_name="yuyan",
+        last_name="peng",
+    ):
+        self.domain = domain
+        self.default_password = password
+        self.default_first_name = first_name
+        self.default_last_name = last_name
+
+    def generate_email(self, length=8):
+        """生成随机邮箱地址"""
+        random_str = "".join(random.choices("abcdefghijklmnopqrstuvwxyz", k=length))
+        timestamp = str(int(time.time()))[-6:]  # 使用时间戳后6位
+        return f"{random_str}{timestamp}@{self.domain}"
+
+    def get_account_info(self):
+        """获取完整的账号信息"""
+        return {
+            "email": self.generate_email(),
+            "password": self.default_password,
+            "first_name": self.default_first_name,
+            "last_name": self.default_last_name,
+        }
+
+
 if __name__ == "__main__":
 if __name__ == "__main__":
     browser_manager = None
     browser_manager = None
     try:
     try:
@@ -363,14 +371,11 @@ if __name__ == "__main__":
                 sys.exit(1)
                 sys.exit(1)
             print("激活成功!")
             print("激活成功!")
 
 
-        # 加载配置
-        config = load_config()
-
         # 初始化浏览器
         # 初始化浏览器
         browser_manager = BrowserManager()
         browser_manager = BrowserManager()
         browser = browser_manager.init_browser()
         browser = browser_manager.init_browser()
 
 
-        # 初始化��箱验证处理器
+        # 初始化箱验证处理器
         email_handler = EmailVerificationHandler(browser)
         email_handler = EmailVerificationHandler(browser)
 
 
         # 固定的 URL 配置
         # 固定的 URL 配置
@@ -379,50 +384,31 @@ if __name__ == "__main__":
         settings_url = "https://www.cursor.com/settings"
         settings_url = "https://www.cursor.com/settings"
         mail_url = "https://tempmail.plus"
         mail_url = "https://tempmail.plus"
 
 
-        # 账号信息
-        account = config["account"]
-        password = config["password"]
-        first_name = config["first_name"]
-        last_name = config["last_name"]
+        # 生成随机邮箱
+        email_generator = EmailGenerator()
+        account = email_generator.generate_email()
+        password = email_generator.default_password
+        first_name = email_generator.default_first_name
+        last_name = email_generator.default_last_name
 
 
         auto_update_cursor_auth = True
         auto_update_cursor_auth = True
 
 
         tab = browser.latest_tab
         tab = browser.latest_tab
         tab.run_js("try { turnstile.reset() } catch(e) { }")
         tab.run_js("try { turnstile.reset() } catch(e) { }")
 
 
-        print("开始执行删除和注册流程")
-        print("***请确认已经用https://tempmail.plus/zh邮箱成功申请过cursor账号!***")
         tab.get(login_url)
         tab.get(login_url)
 
 
-        # 执行删除和注册流程
-        if delete_account(browser, tab):
-            print("账户删除成功")
-            time.sleep(3)
-            if sign_up_account(browser, tab):
-                token = get_cursor_session_token(tab)
-                if token:
-                    # print(f"CursorSessionToken: {token}")
-                    print("账户注册成功")
-                    if auto_update_cursor_auth:
-                        update_cursor_auth(
-                            email=account, access_token=token, refresh_token=token
-                        )
-                else:
-                    print("未能获取到CursorSessionToken")
+        print("开始注册账户")
+        if sign_up_account(browser, tab):
+            token = get_cursor_session_token(tab)
+            # print(f"CursorSessionToken: {token}")
+            print("账户注册成功")
+            if auto_update_cursor_auth:
+                update_cursor_auth(
+                    email=account, access_token=token, refresh_token=token
+                )
             else:
             else:
                 print("账户注册失败")
                 print("账户注册失败")
-        else:
-            print("账户删除失败")
-        # if sign_up_account(browser, tab):
-        #     token = get_cursor_session_token(tab)
-        #     print(f"CursorSessionToken: {token}")
-        #     print("账户注册成功")
-        #     if auto_update_cursor_auth:
-        #         update_cursor_auth(
-        #             email=account, access_token=token, refresh_token=token
-        #         )
-        #     else:
-        #         print("账户注册失败")
 
 
         print("脚本执行完毕")
         print("脚本执行完毕")