PoshBot.XKCD.psm1
function xkcd { <# .SYNOPSIS Retrieve a XKCD comic .EXAMPLE !xkcd ( [1234 | --number 1234] | [--random] | [--newest 5] ) #> [cmdletbinding(DefaultParameterSetName = 'item')] param( [parameter(ParameterSetName = 'item')] [int]$Number = (Invoke-RestMethod 'http://xkcd.com/info.0.json').num, [parameter(ParameterSetName = 'newest')] [int]$Newest, [parameter(ParameterSetName = 'random')] [switch]$Random ) begin { $first = 1 $last = (Invoke-RestMethod 'http://xkcd.com/info.0.json').num $item = $Number if ($Random) { $item = Get-Random -Minimum $first -Maximum $last } if ($Newest) { $item = (($last - $Newest) + 1)..$last } $item = $item | Sort-Object -Descending } process { $item | Foreach-Object { $comic = Invoke-RestMethod "http://xkcd.com/$_/info.0.json" -ErrorAction SilentlyContinue if ($comic) { $comic.img } } } } Export-ModuleMember -Function xkcd |