mirror of
https://github.com/kingparks/cursor-vip.git
synced 2025-09-27 03:15:52 +08:00
cursor-vip update
This commit is contained in:
@@ -193,6 +193,16 @@ func (c *Client) DelFToken(deviceID, category string) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Client) CheckFToken(deviceID string) (has bool) {
|
||||
res, err := httplib.Get(c.host+"/checkFToken").Header("sign", sign.Sign(deviceID)).String()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
has = gjson.Get(res, "has").Bool()
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Client) UpExclusiveStatus(exclusiveUsed, exclusiveTotal int64, exclusiveErr, exclusiveToken, deviceID string) {
|
||||
body, _ := json.Marshal(map[string]interface{}{
|
||||
"exclusiveUsed": exclusiveUsed,
|
||||
|
@@ -56,5 +56,8 @@ Cursor目录权限错误: Cursor directory permission error
|
||||
购买成功,将在重启 cursor-vip 后生效: Purchase successful, will take effect after restart cursor-vip
|
||||
订阅时长会在验证通过后增加对应的天数: The subscription duration will increase the corresponding number of days after the verification is passed
|
||||
免付刷新次数: Free refresh times
|
||||
抱歉,模式三暂无新账号,请稍后再试: Sorry, there are no new accounts in mod 3, please try again later
|
||||
模式三暂无新账号,将自动切换到模式二: There are no new accounts in mod 3, and it will automatically switch to mod 2
|
||||
|
||||
|
||||
|
||||
|
@@ -54,4 +54,5 @@ Cursor目录权限错误: Error de permiso de directorio de Cursor
|
||||
购买成功,将在重启 cursor-vip 后生效: Compra exitosa, se aplicará después de reiniciar cursor-vip
|
||||
订阅时长会在验证通过后增加对应的天数: La duración de la suscripción aumentará el número de días correspondiente después de que se apruebe la verificación
|
||||
免付刷新次数: Número de veces de actualización gratuita
|
||||
|
||||
抱歉,模式三暂无新账号,请稍后再试: Lo siento, no hay cuentas nuevas en el mod 3, inténtelo de nuevo más tarde
|
||||
模式三暂无新账号,将自动切换到模式二: No hay cuentas nuevas en el mod 3, se cambiará automáticamente al mod 2
|
||||
|
@@ -54,4 +54,5 @@ Cursor目录权限错误: Cursor könyvtárjogosultsági hiba
|
||||
购买成功,将在重启 cursor-vip 后生效: Sikeres vásárlás, az újraindítás után lép életbe
|
||||
订阅时长会在验证通过后增加对应的天数: Az előfizetési idő a jóváhagyás után megfelelő napokkal nő
|
||||
免付刷新次数: Ingyenes frissítési idők
|
||||
|
||||
抱歉,模式三暂无新账号,请稍后再试: Sajnáljuk, nincsenek új fiókok a 3. módban, kérjük, próbálja újra később
|
||||
模式三暂无新账号,将自动切换到模式二: Nincsenek új fiókok a 3. módban, automatikusan átvált a 2. módba
|
||||
|
@@ -54,3 +54,5 @@ Cursor目录权限错误: Cursor-mapbevoegdheidsfout
|
||||
购买成功,将在重启 cursor-vip 后生效: Aankoop succesvol, wordt van kracht na het opnieuw opstarten van cursor-vip
|
||||
订阅时长会在验证通过后增加对应的天数: De abonnementsduur wordt verhoogd met het overeenkomstige aantal dagen nadat de verificatie is geslaagd
|
||||
免付刷新次数: Gratis vernieuwingskansen
|
||||
抱歉,模式三暂无新账号,请稍后再试: Sorry, er zijn geen nieuwe accounts in mod 3, probeer het later opnieuw
|
||||
模式三暂无新账号,将自动切换到模式二: Er zijn geen nieuwe accounts in mod 3, het zal automatisch overschakelen naar mod 2
|
||||
|
@@ -54,3 +54,5 @@ Cursor目录权限错误: Ошибка разрешений каталога Cur
|
||||
购买成功,将在重启 cursor-vip 后生效: Покупка успешна, вступит в силу после перезапуска cursor-vip
|
||||
订阅时长会在验证通过后增加对应的天数: Продолжительность подписки увеличится на соответствующее количество дней после прохождения проверки
|
||||
免付刷新次数: Бесплатные возможности обновления
|
||||
抱歉,模式三暂无新账号,请稍后再试: Извините, в моде 3 нет новых учетных записей, попробуйте позже
|
||||
模式三暂无新账号,将自动切换到模式二: В моде 3 нет новых учетных записей, она автоматически переключится на мод 2
|
||||
|
@@ -54,3 +54,5 @@ Cursor目录权限错误: Cursor dizin izni hatası
|
||||
购买成功,将在重启 cursor-vip 后生效: Satın alma başarılı, yeniden başlatma sonrasında geçerli olacak
|
||||
订阅时长会在验证通过后增加对应的天数: Doğrulama yapıldıktan sonra abonelik süresi ilgili gün sayısını artıracaktır
|
||||
免付刷新次数: Ücretsiz yenileme sayısı
|
||||
抱歉,模式三暂无新账号,请稍后再试: Üzgünüz, mod 3'te yeni hesap yok, lütfen daha sonra tekrar deneyin
|
||||
模式三暂无新账号,将自动切换到模式二: Mod 3'te yeni hesap yok ve otomatik olarak mod 2'ye geçecektir
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package params
|
||||
|
||||
var Version = 253
|
||||
var Version = 257
|
||||
|
||||
var Hosts = []string{"https://cursor.jeter.eu.org", "http://129.154.205.7:7193"}
|
||||
|
||||
@@ -14,9 +14,11 @@ var Green = "\033[32m%s\033[0m\n"
|
||||
var Yellow = "\033[33m%s\033[0m\n"
|
||||
var HGreen = "\033[1;32m%s\033[0m"
|
||||
var DGreen = "\033[4;32m%s\033[0m\n"
|
||||
var Red = "\033[31m%s\033[0m\n"
|
||||
|
||||
// var Red = "\033[31m%s\033[0m\n"
|
||||
var Red = "\033[1;31m%s\033[0m\n"
|
||||
var DefaultColor = "%s"
|
||||
var M3DaysRemainingOnTrial = "..."
|
||||
|
||||
var Product = []string{"cursor IDE"}
|
||||
var IsOnlyMod2 = true
|
||||
var IsOnlyMod2 = false
|
||||
|
@@ -114,6 +114,10 @@ func Do() {
|
||||
keyBuffer = nil
|
||||
|
||||
case strings.HasSuffix(combination, "u3d"):
|
||||
if !client.Cli.CheckFToken(params.DeviceID) {
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Yellow, params.Trr.Tr("抱歉,模式三暂无新账号,请稍后再试"))
|
||||
return
|
||||
}
|
||||
if params.M3c > "0" {
|
||||
if err = client.Cli.DelFToken(params.DeviceID, "u3"); err != nil {
|
||||
return
|
||||
@@ -130,6 +134,10 @@ func Do() {
|
||||
keyBuffer = nil
|
||||
|
||||
case strings.HasSuffix(combination, "u3t"):
|
||||
if !client.Cli.CheckFToken(params.DeviceID) {
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Yellow, params.Trr.Tr("抱歉,模式三暂无新账号,请稍后再试"))
|
||||
return
|
||||
}
|
||||
if params.M3c > "0" {
|
||||
if err = client.Cli.DelFToken(params.DeviceID, "u3"); err != nil {
|
||||
return
|
||||
@@ -146,6 +154,10 @@ func Do() {
|
||||
keyBuffer = nil
|
||||
|
||||
case strings.HasSuffix(combination, "u3h"):
|
||||
if !client.Cli.CheckFToken(params.DeviceID) {
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Yellow, params.Trr.Tr("抱歉,模式三暂无新账号,请稍后再试"))
|
||||
return
|
||||
}
|
||||
if params.M3c > "0" {
|
||||
if err = client.Cli.DelFToken(params.DeviceID, "u3"); err != nil {
|
||||
return
|
||||
|
@@ -4,6 +4,8 @@
|
||||
package tool
|
||||
|
||||
import "fmt"
|
||||
import "os"
|
||||
import "syscall"
|
||||
|
||||
func SetProxy(server string, port string) {
|
||||
fmt.Println("Set HTTP and HTTPS proxy manually: ", server+":"+port)
|
||||
@@ -12,3 +14,27 @@ func SetProxy(server string, port string) {
|
||||
func UnSetProxy() {
|
||||
fmt.Println("UnSet HTTP and HTTPS proxy manually: ")
|
||||
}
|
||||
|
||||
// CheckIfChownRequired 检查是否需要执行 chown 操作
|
||||
func CheckIfChownRequired(filePath string) bool {
|
||||
// 获取文件信息
|
||||
fileInfo, err := os.Stat(filePath)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
// 获取文件的UID
|
||||
stat, ok := fileInfo.Sys().(*syscall.Stat_t)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
// 获取当前用户的UID
|
||||
currentUID := os.Getuid()
|
||||
// 比较文件UID和当前用户UID
|
||||
if int(stat.Uid) != currentUID {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
func MacOSIsSIPDisable() bool {
|
||||
return true
|
||||
}
|
||||
|
@@ -5,7 +5,9 @@ package tool
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func SetProxy(server string, port string) {
|
||||
@@ -39,3 +41,38 @@ func UnSetProxy() {
|
||||
log.Fatalf("Failed to unset HTTPS proxy: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// CheckIfChownRequired 检查是否需要执行 chown 操作
|
||||
func CheckIfChownRequired(filePath string) bool {
|
||||
// 获取文件信息
|
||||
fileInfo, err := os.Stat(filePath)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
// 获取文件的UID
|
||||
stat, ok := fileInfo.Sys().(*syscall.Stat_t)
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
// 获取当前用户的UID
|
||||
currentUID := os.Getuid()
|
||||
// 比较文件UID和当前用户UID
|
||||
if int(stat.Uid) != currentUID {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func MacOSIsSIPDisable() bool {
|
||||
// 执行 csrutil status 命令,检查 SIP 状态
|
||||
// 如果 SIP 状态为已禁用,则返回 true
|
||||
// 否则返回 false
|
||||
res, err := exec.Command("csrutil", "status").Output()
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
if string(res) == "System Integrity Protection status: disabled.\n" {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@@ -38,3 +38,11 @@ func UnSetProxy() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// CheckIfChownRequired 检查是否需要执行 chown 操作
|
||||
func CheckIfChownRequired(filePath string) bool {
|
||||
return false
|
||||
}
|
||||
func MacOSIsSIPDisable() bool {
|
||||
return true
|
||||
}
|
||||
|
@@ -102,12 +102,12 @@ func Run() (productSelected string, modelIndexSelected int) {
|
||||
// 快捷键
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("Switch to English:Press 'sen' on keyboard in turn"))
|
||||
modelIndexSelected = int(params.Mode)
|
||||
if !params.IsOnlyMod2 {
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("切换模式依次按键盘")+": sm1/sm2/sm3/sm4")
|
||||
}
|
||||
//if !params.IsOnlyMod2 {
|
||||
// _, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("切换模式依次按键盘")+": sm1/sm2/sm3/sm4")
|
||||
//}
|
||||
// 试用账号
|
||||
if params.Mode == 3 {
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("查询账号自动刷新剩余天数:依次按键盘 q3d"))
|
||||
//_, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("查询账号自动刷新剩余天数:依次按键盘 q3d"))
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, params.Trr.Tr("小额付费刷新账号:依次按键盘 u3d"))
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, "10x"+params.Trr.Tr("小额付费刷新账号:依次按键盘 u3t"))
|
||||
_, _ = fmt.Fprintf(params.ColorOut, params.Green, "100x"+params.Trr.Tr("小额付费刷新账号:依次按键盘 u3h"))
|
||||
|
Reference in New Issue
Block a user