57 lines
1.6 KiB
Python
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
|