40 lines
1.8 KiB
Bash
Executable File
40 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Base URL and API key
|
|
BASE_URL="https://prowlarr.tryton.geeraert.eu"
|
|
API_KEY="0cb77d794ab74f158daaae044ab850ee"
|
|
APP_PROFILE_ID=1 # Set this to a valid App Profile Id
|
|
|
|
# Get the list of all available indexers
|
|
available_indexers=$(curl -s -X GET "$BASE_URL/api/v1/indexer/schema" \
|
|
-H "accept: application/json" \
|
|
-H "X-Api-Key: $API_KEY")
|
|
|
|
# Loop through each indexer and add it to Prowlarr if it matches the criteria
|
|
echo "$available_indexers" | jq -c '.[]' | while read -r indexer; do
|
|
indexer_name=$(echo "$indexer" | jq -r '.name')
|
|
indexer_settings=$(echo "$indexer" | jq -c '.')
|
|
|
|
# Check if the indexer supports TV or movies and uses the specified languages
|
|
supports_tv=$(echo "$indexer_settings" | jq -r 'select(.categories != null) | .categories[] | select(.name == "TV")')
|
|
supports_movies=$(echo "$indexer_settings" | jq -r 'select(.categories != null) | .categories[] | select(.name == "Movies")')
|
|
supports_languages=$(echo "$indexer_settings" | jq -r 'select(.languages != null) | .languages[] | select(. == "en-US" or . == "en-GB" or . == "fr-FR")')
|
|
|
|
if [[ -n "$supports_tv" || -n "$supports_movies" ]] && [[ -n "$supports_languages" ]]; then
|
|
# Add the AppProfileId to the indexer settings
|
|
indexer_settings=$(echo "$indexer_settings" | jq --argjson appProfileId "$APP_PROFILE_ID" '. + {AppProfileId: $appProfileId}')
|
|
|
|
echo "Adding indexer: $indexer_name"
|
|
|
|
curl -s -X POST "$BASE_URL/api/v1/indexer" \
|
|
-H "accept: application/json" \
|
|
-H "X-Api-Key: $API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$indexer_settings"
|
|
|
|
echo "Indexer $indexer_name added."
|
|
else
|
|
echo "Skipping indexer: $indexer_name (does not match criteria)"
|
|
fi
|
|
done
|