feat: 支持linux; 支持配置代理

This commit is contained in:
decker
2025-01-12 11:48:34 +08:00
parent 3c03e6894a
commit 23c097a9ef
5 changed files with 47 additions and 17 deletions

View File

@@ -1,2 +1,5 @@
DOMAIN='xxxxx.me' DOMAIN='xxxxx.me'
TEMP_MAIL='xxxxxx' TEMP_MAIL='xxxxxx'
BROWSER_USER_AGENT='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.92 Safari/537.36'
BROWSER_PROXY='http://127.0.0.1:2080'
BROWSER_HEADLESS='True'

View File

@@ -2,6 +2,9 @@ from DrissionPage import ChromiumOptions, Chromium
import sys import sys
import os import os
import logging import logging
from dotenv import load_dotenv
load_dotenv()
class BrowserManager: class BrowserManager:
@@ -24,12 +27,16 @@ class BrowserManager:
logging.warning(f"警告: {e}") logging.warning(f"警告: {e}")
co.set_user_agent( co.set_user_agent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.92 Safari/537.36" os.getenv('BROWSER_USER_AGENT', "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.92 Safari/537.36")
) )
co.set_pref("credentials_enable_service", False) co.set_pref("credentials_enable_service", False)
co.set_argument("--hide-crash-restore-bubble") co.set_argument("--hide-crash-restore-bubble")
proxy = os.getenv('BROWSER_PROXY')
if proxy:
co.set_proxy(proxy)
co.auto_port() co.auto_port()
co.headless(True) # 生产环境使用无头模式 co.headless(os.getenv('BROWSER_HEADLESS', 'True').lower() == 'true') # 生产环境使用无头模式
# Mac 系统特殊处理 # Mac 系统特殊处理
if sys.platform == "darwin": if sys.platform == "darwin":

View File

@@ -89,9 +89,9 @@ def build():
system = platform.system().lower() system = platform.system().lower()
spec_file = os.path.join("CursorKeepAlive.spec") spec_file = os.path.join("CursorKeepAlive.spec")
if system not in ["darwin", "windows"]: # if system not in ["darwin", "windows"]:
print(f"\033[91mUnsupported operating system: {system}\033[0m") # print(f"\033[91mUnsupported operating system: {system}\033[0m")
return # return
output_dir = f"dist/{system if system != 'darwin' else 'mac'}" output_dir = f"dist/{system if system != 'darwin' else 'mac'}"

View File

@@ -1,5 +1,6 @@
import sqlite3 import sqlite3
import os import os
import sys
class CursorAuthManager: class CursorAuthManager:
@@ -7,14 +8,23 @@ class CursorAuthManager:
def __init__(self): def __init__(self):
# 判断操作系统 # 判断操作系统
if os.name == "nt": # Windows if sys.platform == "win32": # Windows
appdata = os.getenv("APPDATA")
if appdata is None:
raise EnvironmentError("APPDATA 环境变量未设置")
self.db_path = os.path.join( self.db_path = os.path.join(
os.getenv("APPDATA"), "Cursor", "User", "globalStorage", "state.vscdb" appdata, "Cursor", "User", "globalStorage", "state.vscdb"
) )
else: # macOS elif sys.platform == "darwin": # macOS
self.db_path = os.path.expanduser( self.db_path = os.path.abspath(os.path.expanduser(
"~/Library/Application Support/Cursor/User/globalStorage/state.vscdb" "~/Library/Application Support/Cursor/User/globalStorage/state.vscdb"
) ))
elif sys.platform == "linux" : # Linux 和其他类Unix系统
self.db_path = os.path.abspath(os.path.expanduser(
"~/.config/Cursor/User/globalStorage/state.vscdb"
))
else:
raise NotImplementedError(f"不支持的操作系统: {sys.platform}")
def update_auth(self, email=None, access_token=None, refresh_token=None): def update_auth(self, email=None, access_token=None, refresh_token=None):
""" """

View File

@@ -1,4 +1,5 @@
import os import os
import sys
import json import json
import uuid import uuid
import hashlib import hashlib
@@ -22,14 +23,23 @@ EMOJI = {
class MachineIDResetter: class MachineIDResetter:
def __init__(self): def __init__(self):
# 判断操作系统 # 判断操作系统
if os.name == "nt": # Windows if sys.platform == "win32": # Windows
appdata = os.getenv("APPDATA")
if appdata is None:
raise EnvironmentError("APPDATA 环境变量未设置")
self.db_path = os.path.join( self.db_path = os.path.join(
os.getenv("APPDATA"), "Cursor", "User", "globalStorage", "storage.json" appdata, "Cursor", "User", "globalStorage", "storage.json"
) )
else: # macOS elif sys.platform == "darwin": # macOS
self.db_path = os.path.expanduser( self.db_path = os.path.abspath(os.path.expanduser(
"~/Library/Application Support/Cursor/User/globalStorage/storage.json" "~/Library/Application Support/Cursor/User/globalStorage/storage.json"
) ))
elif sys.platform == "linux": # Linux 和其他类Unix系统
self.db_path = os.path.abspath(os.path.expanduser(
"~/.config/Cursor/User/globalStorage/storage.json"
))
else:
raise NotImplementedError(f"不支持的操作系统: {sys.platform}")
def generate_new_ids(self): def generate_new_ids(self):
"""生成新的机器ID""" """生成新的机器ID"""