2025-05-11 23:06:57 +08:00

57 lines
1.6 KiB
Python

import requests
class Cursor:
models = [
"claude-3-5-sonnet-20241022",
"claude-3-opus",
"claude-3.5-haiku",
"claude-3.5-sonnet",
"cursor-fast",
"cursor-small",
"deepseek-r1",
"deepseek-v3",
"gemini-2.0-flash-exp",
"gemini-2.0-flash-thinking-exp",
"gemini-exp-1206",
"gpt-3.5-turbo",
"gpt-4",
"gpt-4-turbo-2024-04-09",
"gpt-4o",
"gpt-4o-mini",
"o1",
"o1-mini",
"o1-preview",
"o3-mini",
]
@classmethod
def get_remaining_balance(cls, user, token):
url = f"https://www.cursor.com/api/usage?user={user}"
headers = {
"Content-Type": "application/json",
"Cookie": f"WorkosCursorSessionToken={user}%3A%3A{token}",
}
response = requests.get(url, headers=headers)
usage = response.json().get("gpt-4", None)
if (
usage is None
or "maxRequestUsage" not in usage
or "numRequests" not in usage
):
return None
return usage["maxRequestUsage"] - usage["numRequests"]
@classmethod
def get_trial_remaining_days(cls, user, token):
url = "https://www.cursor.com/api/auth/stripe"
headers = {
"Content-Type": "application/json",
"Cookie": f"WorkosCursorSessionToken={user}%3A%3A{token}",
}
response = requests.get(url, headers=headers)
remaining_days = response.json().get("daysRemainingOnTrial", None)
return remaining_days