0.16.1-1 Fix registry Makemkv
This commit is contained in:
+87
-26
@@ -446,35 +446,89 @@ install_makemkv() {
|
||||
sync_makemkv_beta_key() {
|
||||
header "MakeMKV Betakey synchronisieren"
|
||||
|
||||
local api_url="http://127.0.0.1:${BACKEND_PORT}/settings/makemkv/beta-key/apply"
|
||||
local response=""
|
||||
local backend_settings_url="http://127.0.0.1:${BACKEND_PORT}/settings"
|
||||
local beta_api_url="https://cable.ayra.ch/makemkv/api.php?json"
|
||||
local settings_response=""
|
||||
local current_key=""
|
||||
local beta_response=""
|
||||
local beta_key=""
|
||||
local save_response=""
|
||||
local makemkv_settings_file="${SERVICE_HOME}/.MakeMKV/settings.conf"
|
||||
|
||||
if ! response=$(curl -fsS \
|
||||
-X POST \
|
||||
update_makemkv_settings_file_key() {
|
||||
local settings_file="$1"
|
||||
local registration_key="$2"
|
||||
local tmp_file
|
||||
tmp_file=$(mktemp)
|
||||
|
||||
if [[ -f "$settings_file" ]]; then
|
||||
grep -vE '^[[:space:]]*app_Key[[:space:]]*=' "$settings_file" > "$tmp_file" || true
|
||||
else
|
||||
: > "$tmp_file"
|
||||
fi
|
||||
|
||||
printf 'app_Key = "%s"\n' "$registration_key" >> "$tmp_file"
|
||||
mv "$tmp_file" "$settings_file"
|
||||
chown "$SERVICE_USER:$SERVICE_USER" "$settings_file" 2>/dev/null || true
|
||||
chmod 600 "$settings_file" 2>/dev/null || true
|
||||
}
|
||||
|
||||
if ! settings_response=$(curl -fsS "$backend_settings_url" 2>/dev/null); then
|
||||
warn "Backend-Settings konnten nicht geladen werden."
|
||||
warn "Betakey-Synchronisierung übersprungen: $backend_settings_url"
|
||||
return 0
|
||||
fi
|
||||
|
||||
current_key=$(printf '%s' "$settings_response" | jq -r '
|
||||
(.categories // [])
|
||||
| map(.settings // [])
|
||||
| add
|
||||
| map(select(.key == "makemkv_registration_key"))
|
||||
| .[0].value // ""
|
||||
' 2>/dev/null || true)
|
||||
current_key="${current_key:-}"
|
||||
|
||||
mkdir -p "${SERVICE_HOME}/.MakeMKV"
|
||||
chown "$SERVICE_USER:$SERVICE_USER" "${SERVICE_HOME}/.MakeMKV" 2>/dev/null || true
|
||||
chmod 700 "${SERVICE_HOME}/.MakeMKV" 2>/dev/null || true
|
||||
|
||||
if [[ -n "$current_key" ]]; then
|
||||
update_makemkv_settings_file_key "$makemkv_settings_file" "$current_key"
|
||||
ok "Vorhandener MakeMKV-Key bleibt erhalten ($makemkv_settings_file)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! beta_response=$(curl -fsS \
|
||||
-A 'Ripster/1.0 (MakeMKV beta key installer)' \
|
||||
-H 'From: admin@example.invalid' \
|
||||
-H 'Accept: application/json, text/plain;q=0.9, */*;q=0.8' \
|
||||
-H 'Accept-Language: de,en-US;q=0.7,en;q=0.3' \
|
||||
-H 'Cache-Control: no-cache' \
|
||||
-H 'Pragma: no-cache' \
|
||||
"$beta_api_url" 2>/dev/null); then
|
||||
warn "MakeMKV-Betakey konnte nicht von der JSON-API geladen werden."
|
||||
warn "API-Endpunkt fehlgeschlagen: $beta_api_url"
|
||||
return 0
|
||||
fi
|
||||
|
||||
beta_key=$(printf '%s' "$beta_response" | jq -r '.key // ""' 2>/dev/null || true)
|
||||
beta_key="${beta_key:-}"
|
||||
if [[ -z "$beta_key" ]]; then
|
||||
warn "MakeMKV-Betakey fehlt in der JSON-Antwort."
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! save_response=$(curl -fsS \
|
||||
-X PUT \
|
||||
-H 'Content-Type: application/json' \
|
||||
--data '{}' \
|
||||
"$api_url" 2>/dev/null); then
|
||||
warn "MakeMKV-Betakey konnte nicht automatisch übernommen werden."
|
||||
warn "Backend-Endpunkt fehlgeschlagen: $api_url"
|
||||
--data "{\"value\":$(printf '%s' "$beta_key" | jq -Rs .)}" \
|
||||
"${backend_settings_url}/makemkv_registration_key" 2>/dev/null); then
|
||||
warn "MakeMKV-Betakey konnte nicht in den Settings gespeichert werden."
|
||||
return 0
|
||||
fi
|
||||
|
||||
local applied preserved settings_file
|
||||
applied=$(printf '%s' "$response" | jq -r '.applied // false' 2>/dev/null || echo "false")
|
||||
preserved=$(printf '%s' "$response" | jq -r '.preservedExistingKey // false' 2>/dev/null || echo "false")
|
||||
settings_file=$(printf '%s' "$response" | jq -r '.settingsFilePath // empty' 2>/dev/null || true)
|
||||
|
||||
if [[ "$applied" == "true" ]]; then
|
||||
ok "MakeMKV-Betakey automatisch gespeichert${settings_file:+ ($settings_file)}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ "$preserved" == "true" ]]; then
|
||||
ok "Vorhandener MakeMKV-Key bleibt erhalten${settings_file:+ ($settings_file)}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
warn "MakeMKV-Betakey wurde nicht übernommen."
|
||||
update_makemkv_settings_file_key "$makemkv_settings_file" "$beta_key"
|
||||
ok "MakeMKV-Betakey automatisch gespeichert ($makemkv_settings_file)"
|
||||
}
|
||||
|
||||
select_handbrake_mode() {
|
||||
@@ -756,8 +810,15 @@ header "Repository holen (Git)"
|
||||
|
||||
# Prüfen ob der gewünschte Branch auf dem Remote existiert
|
||||
info "Prüfe Branch '$GIT_BRANCH' auf Remote..."
|
||||
if ! git ls-remote --exit-code --heads "$REPO_URL" "$GIT_BRANCH" &>/dev/null; then
|
||||
fatal "Branch '$GIT_BRANCH' existiert nicht im Repository $REPO_URL.\nVerfügbare Branches: $(git ls-remote --heads "$REPO_URL" | awk '{print $2}' | sed 's|refs/heads/||' | tr '\n' ' ')"
|
||||
branch_check_output=""
|
||||
branch_check_status=0
|
||||
if ! branch_check_output=$(git ls-remote --exit-code --heads "$REPO_URL" "$GIT_BRANCH" 2>&1); then
|
||||
branch_check_status=$?
|
||||
if [[ "$branch_check_status" -eq 2 ]]; then
|
||||
available_branches=$(git ls-remote --heads "$REPO_URL" 2>/dev/null | awk '{print $2}' | sed 's|refs/heads/||' | tr '\n' ' ')
|
||||
fatal "Branch '$GIT_BRANCH' existiert nicht im Repository $REPO_URL.\nVerfügbare Branches: ${available_branches:-keine oder Remote nicht erreichbar}"
|
||||
fi
|
||||
fatal "Remote $REPO_URL ist nicht erreichbar.\nGit-Fehler: ${branch_check_output:-unbekannt}"
|
||||
fi
|
||||
ok "Branch '$GIT_BRANCH' gefunden"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user