Last active
December 10, 2021 07:24
-
-
Save GodKratos/83276e43b7d362b4c2c848e543157e3d to your computer and use it in GitHub Desktop.
Sonarr Pushbullet custom script derived from https://github.com/CJPCNZ/CustomPush/blob/master/Sonarr/PushBullet.ps1 using environment variables from https://wiki.servarr.com/sonarr/custom-scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Define Variables | |
$sonarr_eventtype = $env:sonarr_eventtype | |
$sonarr_series_id = $env:sonarr_series_id | |
$sonarr_series_title = $env:sonarr_series_title | |
$pushkey="" # Your PushBullet API key | |
$pushtag="" # Add the tag for your Pushbullet Channel or leave blank for direct push notifications | |
$pushtitle = "Error" | |
$pushmessage = "Unhandled event type: $sonarr_eventtype" | |
switch ($sonarr_eventtype) | |
{ | |
"Test" { | |
# Format content | |
$pushtitle = "Test" | |
$pushmessage = "Sonarr Test Message" | |
} | |
"Grab" { | |
# Grab variables | |
$sonarr_series_type = $env:sonarr_series_type | |
$sonarr_release_seasonnumber = $env:sonarr_release_seasonnumber | |
$sonarr_release_episodenumbers = $env:sonarr_release_episodenumbers | |
$sonarr_release_absoluteepisodenumbers = $env:sonarr_release_absoluteepisodenumbers | |
$sonarr_release_episodeairdates = $env:sonarr_release_episodeairdates | |
$sonarr_release_episodetitles = $env:sonarr_release_episodetitles | |
$sonarr_release_title = $env:sonarr_release_title | |
$sonarr_release_quality = $env:sonarr_release_quality | |
$sonarr_release_size = $env:sonarr_release_size | |
# Format content | |
switch ($sonarr_series_type) | |
{ | |
"Anime" { | |
$pushtitle = "{0} - Grab: S{1:d2}E{2:d2} ({3})" -f $sonarr_series_title,[int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers,$sonarr_release_absoluteepisodenumbers | |
$pushmessage = "S{0:d2}E{1:d2} ({2}) - {3} - {4}`n{5} ({6:n0} MB)" -f [int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers,$sonarr_release_absoluteepisodenumbers,$sonarr_release_quality,$sonarr_release_episodetitles,$sonarr_release_title,([int64]$sonarr_release_size/1MB) | |
} | |
"Daily" { | |
$pushtitle = "{0} - Grab: S{1:d2}E{2:d2} ({3})" -f $sonarr_series_title,[int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers,$sonarr_release_episodeairdates | |
$pushmessage = "S{0:d2}E{1:d2} ({2}) - {3} - {4}`n{5} ({6:n0} MB)" -f [int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers,$sonarr_release_episodeairdates,$sonarr_release_quality,$sonarr_release_episodetitles,$sonarr_release_title,([int64]$sonarr_release_size/1MB) | |
} | |
Default { | |
$pushtitle = "{0} - Grab: S{1:d2}E{2:d2}" -f $sonarr_series_title,[int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers | |
$pushmessage = "S{0:d2}E{1:d2} - {2} - {3}`n{4} ({5:n0} MB)" -f [int]$sonarr_release_seasonnumber,[int]$sonarr_release_episodenumbers,$sonarr_release_quality,$sonarr_release_episodetitles,$sonarr_release_title,([int64]$sonarr_release_size/1MB) | |
} | |
} | |
} | |
"Download" { | |
# Download Variables | |
$sonarr_episodefile_id = $env:sonarr_episodefile_id | |
$sonarr_episodefile_seasonnumber = $env:sonarr_episodefile_seasonnumber | |
$sonarr_episodefile_episodenumbers = $env:sonarr_episodefile_episodenumbers | |
$sonarr_episodefile_episodetitles = $env:sonarr_episodefile_episodetitles | |
$sonarr_episodefile_quality = $env:sonarr_episodefile_quality | |
# Format content | |
$pushtitle = "{0} - Import: S{1:d2}E{2:d2}" -f $sonarr_series_title,[int]$sonarr_episodefile_seasonnumber,[int]$sonarr_episodefile_episodenumbers | |
$pushmessage = "S{0:d2}E{1:d2} - {2} - {3}" -f [int]$sonarr_episodefile_seasonnumber,[int]$sonarr_episodefile_episodenumbers,$sonarr_episodefile_quality,$sonarr_episodefile_episodetitles | |
} | |
"Rename" { | |
# Rename Variables | |
$sonarr_series_path = $env:sonarr_series_path | |
# Format content | |
$pushtitle = "{0} - Rename" -f $sonarr_series_title | |
$pushmessage = "{0}" -f $sonarr_series_path | |
} | |
"EpisodeDeleted" { | |
# EpisodeDeleted Variables | |
$sonarr_episodefile_id = $env:sonarr_episodefile_id | |
$sonarr_episodefile_seasonnumber = $env:sonarr_episodefile_seasonnumber | |
$sonarr_episodefile_episodenumbers = $env:sonarr_episodefile_episodenumbers | |
$sonarr_episodefile_episodetitles = $env:sonarr_episodefile_episodetitles | |
$sonarr_episodefile_quality = $env:sonarr_episodefile_quality | |
# Format content | |
$pushtitle = "{0} - Episode Deleted: S{1:d2}E{2:d2}" -f $sonarr_series_title,[int]$sonarr_episodefile_seasonnumber,[int]$sonarr_episodefile_episodenumbers | |
$pushmessage = "S{0:d2}E{1:d2} - {2} - {3}" -f [int]$sonarr_episodefile_seasonnumber,[int]$sonarr_episodefile_episodenumbers,$sonarr_episodefile_quality,$sonarr_episodefile_episodetitles | |
} | |
"SeriesDeleted" { | |
# SeriesDeleted Variables | |
$sonarr_series_path = $env:sonarr_series_path | |
$sonarr_series_deletedfiles - $sonarr_series_deletedfiles | |
# Format content | |
$pushtitle = "{0} - Series Deleted" -f $sonarr_series_title | |
$pushmessage = "{0}`nFiles deleted: {1}" -f $sonarr_series_path,$sonarr_series_deletedfiles | |
} | |
"HealthIssue" { | |
# Health Variables | |
$sonarr_health_issue_level = $env:sonarr_health_issue_level | |
$sonarr_health_issue_type = $env:sonarr_health_issue_type | |
$sonarr_health_issue_message = $env:sonarr_health_issue_message | |
$sonarr_health_issue_wiki = $env:sonarr_health_issue_wiki | |
# Format content | |
$pushtitle = "{0} Health Issue - {1}" -f $sonarr_health_issue_type,$sonarr_health_issue_level | |
$pushmessage = "{0}" -f $sonarr_health_issue_message | |
if (![string]::IsNullOrWhiteSpace($sonarr_health_issue_wiki)) { | |
$pushmessage += "`n{0}" -f $sonarr_health_issue_wiki | |
} | |
} | |
} | |
# Prepare push notification body | |
$pushbody = @{ | |
type = 'note' | |
"title" = $pushtitle | |
"body" = $pushmessage | |
channel_tag = $pushtag | |
} | |
# Send push notification | |
Invoke-WebRequest -Method POST -Uri "https://api.pushbullet.com/v2/pushes" -UseBasicParsing -Header @{"Access-Token" = $pushkey} -Body $pushBody |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment