Public/Get-JipVanDenToorn.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function Get-JipVanDenToorn
{
    $DutchCulture = New-Object -TypeName System.Globalization.CultureInfo -ArgumentList 'nl-NL'

    $Content =
    Invoke-WebRequest -Uri 'https://www.volkskrant.nl/cultuur-media/jip-van-den-toorn~b2e00b99/' `
    | Select-Object -ExpandProperty Content

    $Dates = $Content
    | pup '.artstyle__main--container h3 text{}' --plain
    | ForEach-Object { $_.Trim() }
    | Where-Object { $_ }
    | ForEach-Object { if ($_ -eq '11 september') { '11 september 2021' } else { $_ } }
    | ForEach-Object { [DateTime]::ParseExact($_, "d MMMM yyyy", $DutchCulture) }

    $Images = $Content
    | pup '.artstyle__main--container img attr{src}'

    $NoOfItems = ($Dates.Count), ($Images.Count) | Measure-Object -Minimum | Select-Object -ExpandProperty Minimum

    0..($NoOfItems - 1) | ForEach-Object {
        [PSCustomObject][Ordered]@{
            PSTypeName = 'UncommonSense.Volkskrant.Article'
            Url        = $Images[$_]
            Date       = $Dates[$_]
            Title      = 'Jip van den Toorn'
            Body       = $Images[$_]
        }
    }
}