param ( [string] $ApiServer = "http://localhost:5011", [string] $JsonSecrets = "./seed.secrets.json" ) $ErrorActionPreference = 'Stop' function NewRedditSource { param ( [string] $Name, [string] $Url ) $urlEncoded = [uri]::EscapeDataString($Url) $param = "name=$Name&url=$urlEncoded" $uri = "$ApiServer/api/sources/new/reddit?$param" $res = Invoke-RestMethod -Method Post -Uri $uri return $res } function NewRssSource { param ( [string] $Name, [string] $Url ) $urlEncoded = [uri]::EscapeDataString($Url) $param = "name=$Name&url=$urlEncoded" [string] $uri = "$ApiServer/api/sources/new/rss?$param" $res = Invoke-RestMethod -Method Post -Uri $uri return $res } function NewYoutubeSource { param ( [string] $Name, [string] $Url ) $urlEncoded = [uri]::EscapeDataString($Url) [string] $param = "name=$Name&url=$urlEncoded" [string] $uri = "$ApiServer/api/sources/new/youtube?$param" $res = Invoke-RestMethod -Method Post -Uri $uri return $res } function NewTwitchSource { param ( [string] $Name ) [string] $param = "name=$Name" [string] $uri = "$ApiServer/api/sources/new/twitch?$param" $res = Invoke-RestMethod -Method Post -Uri $uri return $res } function New-DiscordWebhook { param ( [string] $Server, [string] $Channel, [string] $Url ) $urlEncoded = [uri]::EscapeDataString($Url) [string] $param = "server=$Server&channel=$Channel&url=$urlEncoded" [string] $uri = "$ApiServer/api/discord/webhooks?$param" Write-Host $uri $res = Invoke-RestMethod -Method Post -Uri $uri return $res } function New-Subscription { param ( [string] $SourceId, [string] $DiscordWebhookId ) [string] $param = "sourceId=$SourceId&discordId=$DiscordWebhookId" [string] $uri = "$ApiServer/api/subscriptions?$param" $res = Invoke-RestMethod -Method Post -Uri $uri return $res } # Load Secrets file $secrets = Get-Content $JsonSecrets -Raw | ConvertFrom-Json $redditDadJokes = NewRedditSource -Name "dadjokes" -Url "https://reddit.com/r/dadjokes" $redditSteamDeck = NewRedditSource -Name "steamdeck" -Url "https://reddit.com/r/steamdeck" $rssSteamDeck = NewRssSource -Name "Steampowered - Steam Deck" -Url "https://store.steampowered.com/feeds/news/app/1675200/?cc=US&l=english&snr=1_2108_9__2107" $rssFaysHaremporium = NewRssSource -Name "Fay's Haremporium" -Url "https://blog.nyxstudios.moe/rss/" $rssPodcastLetsMosley = NewRssSource -Name "Let's Mosley" -Url "https://anchor.fm/s/6c7aa4c4/podcast/rss" $youtubeGameGrumps = NewYoutubeSource -Name "Game Grumps" -Url "https://www.youtube.com/user/GameGrumps" $youtubeCityPlannerPlays = NewYoutubeSource -Name "City Planner Plays" -Url "https://www.youtube.com/c/cityplannerplays" $twitchNintendo = NewTwitchSource -Name "Nintendo" $twitchNintendo.id $miharuMonitor = New-DiscordWebhook -Server "Miharu Monitor" -Channel "dev" -Url $secrets.MiharuMonitor.dev01 New-Subscription -SourceId $redditDadJokes.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $redditSteamDeck.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $rssSteamDeck.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $rssFaysHaremporium.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $rssPodcastLetsMosley.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $youtubeGameGrumps.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $youtubeCityPlannerPlays.id -DiscordWebhookId $miharuMonitor.id New-Subscription -SourceId $twitchNintendo.id -DiscordWebhookId $miharuMonitor.id