| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import sqlite3
- import os
- class CursorAuthManager:
- """Cursor认证信息管理器"""
- def __init__(self):
- # 判断操作系统
- if os.name == 'nt': # Windows
- self.db_path = os.path.join(os.getenv('APPDATA'), 'Cursor', 'User', 'globalStorage', 'state.vscdb')
- else: # macOS
- self.db_path = os.path.expanduser('~/Library/Application Support/Cursor/User/globalStorage/state.vscdb')
- def update_auth(self, email=None, access_token=None, refresh_token=None):
- """
- 更新Cursor的认证信息
- :param email: 新的邮箱地址
- :param access_token: 新的访问令牌
- :param refresh_token: 新的刷新令牌
- :return: bool 是否成功更新
- """
- updates = []
- if email is not None:
- updates.append(('cursorAuth/cachedEmail', email))
- if access_token is not None:
- updates.append(('cursorAuth/accessToken', access_token))
- if refresh_token is not None:
- updates.append(('cursorAuth/refreshToken', refresh_token))
- if not updates:
- print("没有提供任何要更新的值")
- return False
- conn = None
- try:
- conn = sqlite3.connect(self.db_path)
- cursor = conn.cursor()
- for key, value in updates:
- query = "UPDATE itemTable SET value = ? WHERE key = ?"
- cursor.execute(query, (value, key))
- if cursor.rowcount > 0:
- print(f"成功更新 {key.split('/')[-1]}")
- else:
- print(f"未找到 {key.split('/')[-1]} 或值未变化")
- conn.commit()
- return True
- except sqlite3.Error as e:
- print("数据库错误:", str(e))
- return False
- except Exception as e:
- print("发生错误:", str(e))
- return False
- finally:
- if conn:
- conn.close()
|