Create Get-Powerball.ps1
Print winning Powerball results in PowerShell CLI.
This commit is contained in:
1 file changed
+68
@@ -0,0 +1,68 @@
|
||||
# Get-Powerball.ps1 (PowerShell)
|
||||
# Description: CLI to https://powerball.com (prints winning Powerball results)
|
||||
# Usage: .\Get-Powerball.ps1 [-List|-L]
|
||||
# Author: Justin Oros
|
||||
# Source: https://github.com/JustinOros
|
||||
|
||||
# Define URL for Powerball previous results
|
||||
$powerballUrl = 'https://www.powerball.com/previous-results?gc=powerball'
|
||||
|
||||
# Perform an HTTP GET request to the Powerball website
|
||||
$response = Invoke-WebRequest -Uri $powerballUrl
|
||||
|
||||
# Parse the HTML content using the HTML parser
|
||||
$htmlContent = $response.Content
|
||||
|
||||
# Use regular expressions to find drawing dates, white balls, and power balls...
|
||||
|
||||
# Drawing Dates (h5.card-title)
|
||||
$drawingDates = [regex]::Matches($htmlContent, '<h5 class="card-title">(.+?)</h5>')
|
||||
|
||||
# White Balls (div.form-control.col.white-balls.item-powerball)
|
||||
$whiteballs = [regex]::Matches($htmlContent, '<div class="form-control col white-balls item-powerball">(.+?)</div>')
|
||||
|
||||
# Power Balls (div.form-control.col.powerball.item-powerball)
|
||||
$powerballs = [regex]::Matches($htmlContent, '<div class="form-control col powerball item-powerball">(.+?)</div>')
|
||||
|
||||
# Initialize positions for white balls and power balls
|
||||
$whiteballPos = 0
|
||||
$powerballPos = 0
|
||||
|
||||
# Check if the -List or -L argument was passed
|
||||
$printAll = $false
|
||||
if ($args.Count -gt 0) {
|
||||
if ($args[0].ToLower() -in @('-list', '-l')) {
|
||||
$printAll = $true
|
||||
}
|
||||
}
|
||||
|
||||
# Function - Print a single line of winning powerball number results
|
||||
function Print-Line($date, $whiteballPos, $powerballPos) {
|
||||
# Print Date
|
||||
Write-Host -NoNewline "$($date.Groups[1].Value): "
|
||||
|
||||
# Print White Balls
|
||||
for ($i = 0; $i -lt 5; $i++) {
|
||||
Write-Host -NoNewline "$($whiteballs[$whiteballPos].Groups[1].Value), "
|
||||
$whiteballPos++
|
||||
}
|
||||
|
||||
# Print Power Ball
|
||||
Write-Host "$($powerballs[$powerballPos].Groups[1].Value)"
|
||||
$powerballPos++
|
||||
|
||||
return $whiteballPos, $powerballPos
|
||||
}
|
||||
|
||||
# Loop through and print results based on argument flag
|
||||
if ($printAll) {
|
||||
# If -List or -L is present, print all lines
|
||||
for ($i = 0; $i -lt $drawingDates.Count; $i++) {
|
||||
$whiteballPos, $powerballPos = Print-Line $drawingDates[$i] $whiteballPos $powerballPos
|
||||
}
|
||||
} else {
|
||||
# Print only the first line
|
||||
if ($drawingDates.Count -gt 0) {
|
||||
$whiteballPos, $powerballPos = Print-Line $drawingDates[0] $whiteballPos $powerballPos
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user