From 0c3fc80a0d970e4289bcc78524e2b36641409ca5 Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Thu, 26 Aug 2021 16:59:23 +0200 Subject: [PATCH] Add list-crypto-rates.ps1 --- Data/scripts.csv | 1 + README.md | 3 +- Scripts/list-crypto-rates.ps1 | 53 +++++++++++++++++++++++++++++++++ Scripts/list-exchange-rates.ps1 | 8 ++--- 4 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 Scripts/list-crypto-rates.ps1 diff --git a/Data/scripts.csv b/Data/scripts.csv index d02c63ea..f34cb715 100644 --- a/Data/scripts.csv +++ b/Data/scripts.csv @@ -93,6 +93,7 @@ list-commits.ps1, lists all commits in the current/given Git repository list-cli-tools.ps1, lists available command-line interface (CLI) tools list-clipboard.ps1, lists the contents of the clipboard list-credits.ps1, shows the credits +list-crypto-rates.ps1, lists the current crypto exchange rates list-dir.ps1, lists the directory content (formatted in columns) list-dir-tree.ps1, lists the directory tree content list-drives.ps1, lists all drives diff --git a/README.md b/README.md index e4f82e94..7df04818 100644 --- a/README.md +++ b/README.md @@ -213,12 +213,13 @@ Mega Collection of PowerShell Scripts * [list-anagrams.ps1](Scripts/list-anagrams.ps1) - lists all anagrams of the given word * [list-city-weather.ps1](Scripts/list-city-weather.ps1) - lists the current weather of cities worldwide (west to east) * [list-credits.ps1](Scripts/list-credits.ps1) - shows the credits +* [list-crypto-rates.ps1](Scripts/list-crypto-rates.ps1) - lists the current crypto exchange rates * [list-environment-variables.ps1](Scripts/list-environment-variables.ps1) - lists all environment variables * [list-emojis.ps1](Scripts/list-emojis.ps1) - lists the emojis of Unicode 13.0 * [list-fritzbox-calls.ps1](Scripts/list-fritzbox-calls.ps1) - lists the FRITZ!Box calls * [list-fritzbox-devices.ps1](Scripts/list-fritzbox-devices.ps1) - lists FRITZ!Box's known devices * [list-earthquakes.ps1](Scripts/list-earthquakes.ps1) - lists earthquakes with magnitude >= 6.0 for the last 30 days -* [list-exchange-rates.ps1](Scripts/list-exchange-rates.ps1) - lists the exchange rates for the given currency +* [list-exchange-rates.ps1](Scripts/list-exchange-rates.ps1) - lists the current exchange rates for the given currency * [list-memos.ps1](Scripts/list-memos.ps1) - lists the memos at $HOME/Memos.csv * [list-mysql-tables.ps1](Scripts/list-mysql-tables.ps1) - lists the MySQL server tables * [list-news.ps1](Scripts/list-news.ps1) - lists the latest news diff --git a/Scripts/list-crypto-rates.ps1 b/Scripts/list-crypto-rates.ps1 new file mode 100644 index 00000000..d0ebe799 --- /dev/null +++ b/Scripts/list-crypto-rates.ps1 @@ -0,0 +1,53 @@ +<# +.SYNOPSIS + list-crypto-rates.ps1 +.DESCRIPTION + Lists the current crypto exchange rates +.EXAMPLE + PS> .\list-crypto-rates.ps1 +.LINK + https://github.com/fleschutz/PowerShell +.NOTES + Author: Markus Fleschutz + License: CC0 +#> + +function ListCryptoRate { param([string]$Symbol, [string]$Name) + $Rates = (invoke-webRequest -uri "https://min-api.cryptocompare.com/data/price?fsym=$Symbol&tsyms=USD,EUR,RUB,CNY" -userAgent "curl" -useBasicParsing).Content | ConvertFrom-Json + new-object PSObject -property @{ 'Cryptocurrency' = "1 $Name ($Symbol) ="; 'USD' = "$($Rates.USD)"; 'EUR' = "$($Rates.EUR)"; 'RUB' = "$($Rates.RUB)"; 'CNY' = "$($Rates.CNY)" } +} + +function ListCryptoRates { + ListCryptoRate BTC "Bitcoin" + ListCryptoRate ETH "Ethereum" + ListCryptoRate ADA "Cardano" + ListCryptoRate BNB "Binance Coin" + ListCryptoRate USDT "Tether" + ListCryptoRate XRP "XRP" + ListCryptoRate DOGE "Dogecoin" + ListCryptoRate USDC "USD Coin" + ListCryptoRate DOT "Polkadot" + ListCryptoRate SOL "Solana" + ListCryptoRate UNI "Uniswap" + ListCryptoRate BUSD "Binance USD" + ListCryptoRate BCH "Bitcoin Cash" + ListCryptoRate LTC "Litecoin" + ListCryptoRate LINK "Chainlink" + ListCryptoRate LUNA "Terra" + ListCryptoRate ICP "Internet Computer" + ListCryptoRate WBTC "Wrapped Bitcoin" + ListCryptoRate MATIC "Polygon" + ListCryptoRate XLM "Stellar" +} + +try { + "" + "Current Crypto Exchange Rates (source: cryptocompare.com)" + "=============================" + + ListCryptoRates | format-table -property @{e='Cryptocurrency';width=28},USD,EUR,RUB,CNY + exit 0 +} catch { + write-error "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" + exit 1 +} diff --git a/Scripts/list-exchange-rates.ps1 b/Scripts/list-exchange-rates.ps1 index 8d62d6c8..3ecdb3f7 100644 --- a/Scripts/list-exchange-rates.ps1 +++ b/Scripts/list-exchange-rates.ps1 @@ -2,9 +2,9 @@ .SYNOPSIS list-exchange-rates.ps1 [] .DESCRIPTION - Lists the exchange rates for the given currency (USD per default) + Lists the current exchange rates for the given currency (USD per default) .EXAMPLE - PS> .\list-exchange-rates.ps1 + PS> .\list-exchange-rates.ps1 EUR .LINK https://github.com/fleschutz/PowerShell .NOTES @@ -23,8 +23,8 @@ function ListExchangeRates { param([string]$currency) try { "" - "Exchange Rates for 1 $currency (source: http://www.floatrates.com)" - "============================================================" + "Current Exchange Rates for 1 $currency (source: http://www.floatrates.com)" + "================================" ListExchangeRates $currency | format-table -property Rate,Currency,Inverse,Date exit 0