From 38f4bb9d95307f0c1e3c4f2e59aa923ac78b6045 Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Sat, 4 Dec 2021 15:37:22 +0100 Subject: [PATCH] Add check-headlines.ps1 --- Docs/VoiceControl.md | 2 +- Scripts/check-headlines.ps1 | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Scripts/check-headlines.ps1 diff --git a/Docs/VoiceControl.md b/Docs/VoiceControl.md index 8b52e547..d445c42a 100644 --- a/Docs/VoiceControl.md +++ b/Docs/VoiceControl.md @@ -25,7 +25,7 @@ More supported voice commands are: `Computer, check` [name] ------------------------ -Lets the computer check something, replace [name] by: `CPU`, `date`, `DNS`, `drives`, `Earth` (fun), `Moon`, `operating system`, `ping`, `Sun`, `swap space`, `time`, `time zone`, `up-time`, `VPN`, or `weather`. +Lets the computer check something, replace [name] by: `CPU`, `date`, `DNS`, `drives`, `Earth` (fun), `headlines`, `Moon`, `operating system`, `ping`, `Sun`, `swap space`, `time`, `time zone`, `up-time`, `VPN`, or `weather`. `Computer, open` [name] `browser` diff --git a/Scripts/check-headlines.ps1 b/Scripts/check-headlines.ps1 new file mode 100644 index 00000000..f37a1d74 --- /dev/null +++ b/Scripts/check-headlines.ps1 @@ -0,0 +1,33 @@ +<# +.SYNOPSIS + Checks the latests headlines +.DESCRIPTION + This script tells the latest headlines by text-to-speech (TTS). +.PARAMETER RSS_URL + Specifies the URL to the RSS feed +.PARAMETER MaxCount + Specifies the number of news to list +.EXAMPLE + PS> ./list-news +.NOTES + Author: Markus Fleschutz · License: CC0 +.LINK + https://github.com/fleschutz/PowerShell +#> + +param([string]$RSS_URL = "https://yahoo.com/news/rss/world", [int]$MaxCount = 8) + +try { + [xml]$Content = (invoke-webRequest -uri $RSS_URL -useBasicParsing).Content + [int]$Count = 0 + foreach ($item in $Content.rss.channel.item) { + "→ $($item.title)" + & "$PSScriptRoot/speak-english.ps1" "$($item.title)" + $Count++ + if ($Count -eq $MaxCount) { break } + } + exit 0 # success +} catch { + "⚠️ Error: $($Error[0]) ($($MyInvocation.MyCommand.Name):$($_.InvocationInfo.ScriptLineNumber))" + exit 1 +}