Public/Get-ShellPhishShowsByState.ps1
|
function Get-ShellPhishShowsByState { <# .SYNOPSIS Geographic breakdown of Phish shows by state/country. .PARAMETER ExportPath Optional file path (.csv or .json) to export results. .EXAMPLE PS C:\> Get-ShellPhishShowsByState #> [CmdletBinding()] param ( [Parameter()] [string]$ExportPath ) Write-Verbose "Fetching all Phish shows..." $shows = (Get-ShellPhishShows -Artist phish).data if (-not $shows) { Write-Warning "No shows found" return } $byState = $shows | Group-Object -Property state | ForEach-Object { $venues = ($_.Group | Select-Object -ExpandProperty venue -Unique).Count $first = ($_.Group | Sort-Object showdate | Select-Object -First 1).showdate $last = ($_.Group | Sort-Object showdate | Select-Object -Last 1).showdate [PSCustomObject]@{ State = $_.Name ShowCount = $_.Count UniqueVenues = $venues FirstShow = $first LastShow = $last } } | Sort-Object ShowCount -Descending Export-ShellPhishData -Data $byState -ExportPath $ExportPath } |