-
-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update plex_update.ps1 #45
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,25 @@ | ||
# PLEX PARTIAL SCAN script or PLEX UPDATE script | ||
# When zurg detects changes, it can trigger this script IF your config.yml contains | ||
# on_library_update: & { & '.\plex_update.ps1' $args } | ||
Add-Type -AssemblyName System.Web | ||
|
||
# this uses python3 | ||
# docker compose exec zurg apk add python3 | ||
# sudo apt install python3 | ||
$plex_url = "http://yourplexip:32400" | ||
$token = "YourPlexTokenHere" | ||
$zurg_mount = "YourZurgMountLetterHere:" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider validating the |
||
|
||
$plex_url = "http://yourplexip:32400" # If you're using zurg inside a Docker container, by default it is 172.17.0.1:32400 | ||
$token = "yourplextoken" # open Plex in a browser, open dev console and copy-paste this: window.localStorage.getItem("myPlexAccessToken") | ||
$zurg_mount = "/mnt/zurg" # replace with your zurg mount path, ensure this is what Plex sees | ||
|
||
# Get the list of section IDs | ||
$section_ids = (Invoke-WebRequest -Uri "$plex_url/library/sections" -Headers @{"X-Plex-Token" = $token} -Method Get).Content | | ||
Select-Xml -XPath "//Directory/@key" | | ||
ForEach-Object { $_.Node.Value } | ||
|
||
foreach ($arg in $args) { | ||
# Construct the full path | ||
$modified_arg = "$zurg_mount/$arg" | ||
Write-Host "Detected update on: $arg" | ||
Write-Host "Absolute path: $modified_arg" | ||
|
||
# URL Encode the path | ||
$encoded_arg = [System.Web.HttpUtility]::UrlEncode($modified_arg) | ||
|
||
if ([string]::IsNullOrEmpty($encoded_arg)) { | ||
Write-Host "Error: Encoded argument is empty. Check the input or encoding process." | ||
continue | ||
} | ||
|
||
# Additional escaping logic here if necessary | ||
# For instance, if certain characters are not being correctly escaped by UrlEncode, | ||
# you can add custom replace commands here. | ||
|
||
foreach ($section_id in $section_ids) { | ||
$final_url = "${plex_url}/library/sections/${section_id}/refresh?path=${encoded_arg}&X-Plex-Token=${token}" | ||
Comment on lines
13
to
24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The construction of There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The final message indicates completion. Consider adding error handling to provide feedback if any web requests fail. |
||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure that the
$plex_url
and$token
variables are assigned from a secure source or environment variables to prevent hardcoding sensitive information.