Search notes:
Stackexchange Web API
function get-webApiJson {
param (
[string] $url
)
$res = invoke-webRequest $url
convertFrom-json $res.Content
}
$version = '2.3'
$baseUrl = "https://api.stackexchange.com/$version"
Get all sites and store them as PS objects in $se_sites
:
$se_sites = @()
$pageNum = 0
$anotherPageToFetch = $true
while ($anotherPageToFetch) {
$pageNum ++
$sites = get-webApiJson "$baseUrl/sites?pagesize=999&pagenum=$pageNum"
foreach ($site in $sites.items) {
$se_sites += new-object psObject -property @{ name = $site.name ; api_name = $site.api_site_parameter ; type = $site.site_type }
}
$anotherPageToFetch = $sites.has_more
}
$se_sites | where-object type -eq main_site
Find questions that contain a specific URL:
$url = 'renenyffenegger.ch'
foreach ($site in $se_sites) {
if ($site.type -eq 'meta_site') {
continue
}
$site.name
$questions_linking_to_url = get-webApiJson "$baseUrl/search/advanced?order=desc&sort=activity&url=*$url*&site=$($site.api_name)"
foreach ($question in $questions_linking_to_url.items) {
' {0,-70} {1}' -f $question.title.SubString(0, [Math]::Min($question.title.Length, 70)), $question.link
}
}