Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/anthemty_ocg.json
T

1 line
6.8 KiB
JSON

{"repo": "anthemty/ocg", "files": {"deepseek.go": {"43f6e9159811623dc9b8b079d628a47ec101ab1e": {"t": 1785746074.9212885, "n": 3160, "h": "ea87215a09106e06", "c": "package main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// deepseekBalanceResp matches the GET /user/balance response.\ntype deepseekBalanceResp struct {\n\tIsAvailable bool `json:\"is_available\"`\n\tBalanceInfos []deepseekBalanceInfo `json:\"balance_infos\"`\n}\n\ntype deepseekBalanceInfo struct {\n\tCurrency string `json:\"currency\"`\n\tTotalBalance string `json:\"total_balance\"`\n\tGrantedBalance string `json:\"granted_balance\"`\n\tToppedUpBalance string `json:\"topped_up_balance\"`\n}\n\n// fetchDeepSeek fetches balance from api.deepseek.com.\nfunc fetchDeepSeek(cfg *Config) *ProviderFetchResult {\n\tkey := cfg.DeepSeek.APIKey\n\tif key == \"\" {\n\t\treturn &ProviderFetchResult{\n\t\t\tCriticality: 0,\n\t\t\tErr: fmt.Errorf(\"not configured\"),\n\t\t\tLines: []string{\"— set API key to configure\"},\n\t\t}\n\t}\n\n\tclient := &http.Client{Timeout: 15 * time.Second}\n\treq, err := http.NewRequest(\"GET\", \"https://api.deepseek.com/user/balance\", nil)\n\tif err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: err}\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+key)\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"request failed: %w\", err)}\n\t}\n\tdefer resp.Body.Close()\n\n\tif resp.StatusCode != 200 {\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"HTTP %d: %s\", resp.StatusCode, string(body))}\n\t}\n\n\tvar bal deepseekBalanceResp\n\tif err := json.NewDecoder(resp.Body).Decode(&bal); err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"parse: %w\", err)}\n\t}\n\tif !bal.IsAvailable {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"account is not available\")}\n\t}\n\tif len(bal.BalanceInfos) == 0 {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"no balance info\")}\n\t}\n\n\tinfo := bal.BalanceInfos[0]\n\ttotalStr := info.TotalBalance\n\tgrantedStr := info.GrantedBalance\n\ttoppedUpStr := info.ToppedUpBalance\n\n\t// Parse numeric to compute criticality (¥0 → 100% critical).\n\ttotal := parseFloat(totalStr)\n\n\t// Lines: show readable amounts.\n\tcur := \"\"\n\tswitch info.Currency {\n\tcase \"CNY\":\n\t\tcur = \"¥\"\n\tcase \"USD\":\n\t\tcur = \"$\"\n\tdefault:\n\t\tcur = info.Currency + \" \"\n\t}\n\n\tvar criticality int\n\tif total <= 0 {\n\t\tcriticality = 100\n\t} else {\n\t\t// Treat < ¥5 as yellow, ¥0 as red; scale linearly.\n\t\tif total >= 50 {\n\t\t\tcriticality = 0\n\t\t} else {\n\t\t\tcriticality = int((1 - total/50.0) * 100)\n\t\t\tif criticality < 0 {\n\t\t\t\tcriticality = 0\n\t\t\t}\n\t\t}\n\t}\n\n\tlines := []string{\n\t\tfmt.Sprintf(\"Balance %s%s %s\", cur, totalStr, statusDot(100-criticality)),\n\t\tfmt.Sprintf(\"Granted %s%s\", cur, grantedStr),\n\t\tfmt.Sprintf(\"Topped %s%s\", cur, toppedUpStr),\n\t}\n\tmeters := []UsageMeter{\n\t\t{Label: \"Balance\", Percent: criticality, Detail: fmt.Sprintf(\"%s%s left\", cur, totalStr)},\n\t\t{Label: \"Granted\", Percent: 0, Detail: cur + grantedStr},\n\t\t{Label: \"Topped\", Percent: 0, Detail: cur + toppedUpStr},\n\t}\n\n\treturn &ProviderFetchResult{\n\t\tCriticality: criticality,\n\t\tLines: lines,\n\t\tMeters: meters,\n\t}\n}\n\nfunc parseFloat(s string) float64 {\n\tvar v float64\n\t_ = json.Unmarshal([]byte(s), &v)\n\treturn v\n}\n"}, "f15077d2b6f44c41b9350d42fd857b571fa3fded": {"t": 1785759562.0087512, "n": 2908, "h": "900bffb43bcc5c24", "c": "package main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// deepseekBalanceResp matches the GET /user/balance response.\ntype deepseekBalanceResp struct {\n\tIsAvailable bool `json:\"is_available\"`\n\tBalanceInfos []deepseekBalanceInfo `json:\"balance_infos\"`\n}\n\ntype deepseekBalanceInfo struct {\n\tCurrency string `json:\"currency\"`\n\tTotalBalance string `json:\"total_balance\"`\n\tGrantedBalance string `json:\"granted_balance\"`\n\tToppedUpBalance string `json:\"topped_up_balance\"`\n}\n\n// fetchDeepSeek fetches balance from api.deepseek.com.\nfunc fetchDeepSeek(cfg *Config) *ProviderFetchResult {\n\tkey := cfg.DeepSeek.APIKey\n\tif key == \"\" {\n\t\treturn &ProviderFetchResult{\n\t\t\tCriticality: 0,\n\t\t\tErr: fmt.Errorf(\"not configured\"),\n\t\t\tLines: []string{\"— set API key to configure\"},\n\t\t}\n\t}\n\n\tclient := &http.Client{Timeout: 15 * time.Second}\n\treq, err := http.NewRequest(\"GET\", \"https://api.deepseek.com/user/balance\", nil)\n\tif err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: err}\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+key)\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"request failed: %w\", err)}\n\t}\n\tdefer resp.Body.Close()\n\n\tif resp.StatusCode != 200 {\n\t\tbody, _ := io.ReadAll(resp.Body)\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"HTTP %d: %s\", resp.StatusCode, string(body))}\n\t}\n\n\tvar bal deepseekBalanceResp\n\tif err := json.NewDecoder(resp.Body).Decode(&bal); err != nil {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"parse: %w\", err)}\n\t}\n\tif !bal.IsAvailable {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"account is not available\")}\n\t}\n\tif len(bal.BalanceInfos) == 0 {\n\t\treturn &ProviderFetchResult{Criticality: 0, Err: fmt.Errorf(\"no balance info\")}\n\t}\n\n\tinfo := bal.BalanceInfos[0]\n\ttotalStr := info.TotalBalance\n\tgrantedStr := info.GrantedBalance\n\ttoppedUpStr := info.ToppedUpBalance\n\n\t// Parse numeric to compute criticality (¥0 → 100% critical).\n\ttotal := parseFloat(totalStr)\n\n\t// Lines: show readable amounts.\n\tcur := \"\"\n\tswitch info.Currency {\n\tcase \"CNY\":\n\t\tcur = \"¥\"\n\tcase \"USD\":\n\t\tcur = \"$\"\n\tdefault:\n\t\tcur = info.Currency + \" \"\n\t}\n\n\tvar criticality int\n\tif total <= 0 {\n\t\tcriticality = 100\n\t} else {\n\t\t// Treat < ¥5 as yellow, ¥0 as red; scale linearly.\n\t\tif total >= 50 {\n\t\t\tcriticality = 0\n\t\t} else {\n\t\t\tcriticality = int((1 - total/50.0) * 100)\n\t\t\tif criticality < 0 {\n\t\t\t\tcriticality = 0\n\t\t\t}\n\t\t}\n\t}\n\n\tlines := []string{\n\t\tfmt.Sprintf(\"Balance %s%s %s\", cur, totalStr, statusDot(100-criticality)),\n\t\tfmt.Sprintf(\"Granted %s%s\", cur, grantedStr),\n\t\tfmt.Sprintf(\"Topped %s%s\", cur, toppedUpStr),\n\t}\n\n\treturn &ProviderFetchResult{\n\t\tCriticality: criticality,\n\t\tLines: lines,\n\t}\n}\n\nfunc parseFloat(s string) float64 {\n\tvar v float64\n\t_ = json.Unmarshal([]byte(s), &v)\n\treturn v\n}\n"}}}}