Benutzer:Plozessor/UpdateGlbLinks

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
#
# In der Variable $lbseiten muss eine Liste mit den Namen der Landschaftsbestandteil-Seiten sein (z. B. mit "$lbseiten = Get-Clipboard" aus Excel eingefügt)
#

# Wo halt PyWikibot installiert ist
Set-Location c:\UTIWIN\pywikibot2\core

$lbseiten | ForEach-Object {
    $newpage = $_
    $newlink = "* [[" + $_ + "]]"
    Write-Host $_ -ForegroundColor Blue
    $urlpart = $_.replace(" ", "_") 
    $url = 'https://de.wikipedia.org/wiki/' + $urlpart + '?action=raw'
    $result = Invoke-WebRequest $url
    $lines = $result.content.split("`n")
    $links = $lines | Where-Object { $_ -match "^\*\s*\[\[" }
    $pages = $links | ForEach-Object {
        $_.replace("* [[", "").replace("]]", "")
    }
    
    $pages | ForEach-Object { 
        Write-Host $_ -ForegroundColor Yellow
        $urlpart2 = $_.replace(" ", "_") 
        $url2 = 'https://de.wikipedia.org/wiki/' + $urlpart2 + '?action=raw'
        $result2 = Invoke-WebRequest $url2
        $lines2 = $result2.content.split("`n")
        $links2 = $lines2 | Where-Object { $_ -match "^\*\s*\[\[" }
        if ($links2) {
            if ($newlink -in $links2) {
                Write-Host 'exists!!!' -ForegroundColor DarkRed
            }
            else {
                $lastline = $links2 | Select-Object -last 1
                $newlastline = $lastline + "\n" + $newlink
                Write-Host $lastline -ForegroundColor Red
                # Aufruf PyWikibot ggf. anpassen
                & c:\utiwin\python\python.exe pwb.py replace -lang:de -family:wikipedia -page:$urlpart2 -summary:"Link zur neuen Liste der geschützten Landschaftsbestandteile eingefügt" -always $lastline $newlastline
            }
        }
    }
}