diff --git a/nushell/modules/pj_aliases.nu b/nushell/modules/pj_aliases.nu index c391716..28da11b 100644 --- a/nushell/modules/pj_aliases.nu +++ b/nushell/modules/pj_aliases.nu @@ -14,18 +14,31 @@ export alias ....... = cd ../../../../../.. export alias ........ = cd ../../../../../../.. export alias .......... = cd ../../../../../../../.. - -export def py [...rest: string] { - if (which ^py | is-not-empty) { - ^py ...$rest - } else if (which ^python3 | is-not-empty) { - ^python3 ...$rest - } else { - print "Error: Python is not installed or could not be found." - } -} - export alias weather = curl wttr.in export alias moon = curl wttr.in/Moon export alias quote = curl https://api.quotable.io/random | from json | get content export alias dadjoke = curl -H "Accept: application/json" https://icanhazdadjoke.com/ | from json | get joke + +# --- Git --- +export alias g = git + +# --- Navigation & Shell --- +export alias c = clear +export def reload [] { exec nu } +export def edit [] { ^$env.EDITOR ($env.NU_POLYJUICE_PATH | path join 'nu_polyjuice.nu') } + +# --- File system --- +export alias tree = ls **/* + +# --- Network --- +export alias myip = curl -s ifconfig.me +export def ports [] { ^netstat -ano | lines | where {|row| $row | str contains 'LISTENING'} | str trim } + +# --- System --- +export def df [] { + if (which ^df | is-not-empty) { + ^df -h + } else { + ^wmic logicaldisk get size,freespace,caption + } +} diff --git a/nushell/modules/pj_deepseek.nu b/nushell/modules/pj_deepseek.nu new file mode 100644 index 0000000..e17bf89 --- /dev/null +++ b/nushell/modules/pj_deepseek.nu @@ -0,0 +1,54 @@ +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 ` 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 ` 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 "" + } +} diff --git a/nushell/modules/pj_python.nu b/nushell/modules/pj_python.nu new file mode 100644 index 0000000..870b984 --- /dev/null +++ b/nushell/modules/pj_python.nu @@ -0,0 +1,10 @@ +# Python launcher: prefer `py` (Windows launcher), fallback to `python3` +export def py [...rest: string] { + if (which ^py | is-not-empty) { + ^py ...$rest + } else if (which ^python3 | is-not-empty) { + ^python3 ...$rest + } else { + print "Error: Python is not installed or could not be found." + } +} diff --git a/nushell/nu_polyjuice.nu b/nushell/nu_polyjuice.nu index 8718eda..b5cced7 100644 --- a/nushell/nu_polyjuice.nu +++ b/nushell/nu_polyjuice.nu @@ -6,6 +6,7 @@ $env.NU_POLYJUICE_PATH = $env.FILE_PWD # modules use modules/pj_aliases.nu * +use modules/pj_python.nu * use modules/pj_brew.nu * use modules/pj_uv.nu * use modules/pj_completions.nu * @@ -13,4 +14,5 @@ use modules/pj_helix.nu * use modules/pj_fzf.nu * use modules/pj_zoxide.nu * use modules/pj_historyhintcomplete.nu * +use modules/pj_deepseek.nu * use modules/pj_prompt.nu *