Files
TerminalPolyjuice/nushell/modules/pj_deepseek.nu
T
gwbeip 727e4977f8 feat(deepseek api): add balance query and API key management
Add pj deepseek command to query account balance and
pj deepseek setkey to store API key in local cache.

Also extract Python launcher into its own module (pj_python.nu)
and add common aliases (g, c, tree, myip, ports, df, reload, edit).
2026-06-14 11:10:16 +08:00

55 lines
1.9 KiB
Nu

const pj_module_dir = (path self | path dirname)
const pj_cache_dir = ($pj_module_dir | path join '..' 'cache')
const key_file = ($pj_cache_dir | path join 'deepseek_apikey.toml')
# Save your DeepSeek API key to local cache.
export def "pj deepseek setkey" [api_key: string] {
mkdir $pj_cache_dir
let content = $"[apikey]
key = \"($api_key)\"
"
$content | save -f $key_file
print $"(char --unicode '2714') DeepSeek API key saved to ($key_file)"
}
# Query DeepSeek account balance information.
export def "pj deepseek" [] {
if not ($key_file | path exists) {
print $"(char --unicode '274c') No DeepSeek API key found. Use `pj deepseek setkey <api-key>` to set it."
return
}
let config = (open $key_file)
let api_key = ($config.apikey?.key? | default "")
if ($api_key | is-empty) {
print $"(char --unicode '274c') Invalid API key in config file. Use `pj deepseek setkey <api-key>` to set a new one."
return
}
let response = (curl -L -X GET 'https://api.deepseek.com/user/balance' -H 'Accept: application/json' -H $"Authorization: Bearer ($api_key)" | complete)
if ($response.exit_code != 0) {
print $"(char --unicode '274c') Failed to query balance: ($response.stderr)"
return
}
let balance = ($response.stdout | from json)
let available_text = if $balance.is_available { $'(char --unicode '2705') Yes' } else { $'(char --unicode '274c') No' }
let separator = ('' | fill --character (char --unicode '2501') --width 25 --alignment l)
print ""
print " DeepSeek Account Balance"
print $" ($separator)"
print $" Available : ($available_text)"
print ""
for info in $balance.balance_infos {
print $" Currency : ($info.currency)"
print $" Total : ($info.total_balance)"
print $" Granted : ($info.granted_balance)"
print $" Topped-up : ($info.topped_up_balance)"
print ""
}
}