727e4977f8
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).
55 lines
1.9 KiB
Nu
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 ""
|
|
}
|
|
}
|