mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 19:54:31 +00:00
Merge pull request #15 from Terranom674/fix/remove-nc-status-card-09625
0.9.6.26: Connector-Timer nicht mehr durch Bildaufbereitung blockieren
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
Plugin Name: Bratonien Tools
|
Plugin Name: Bratonien Tools
|
||||||
Version: 0.9.6.25
|
Version: 0.9.6.26
|
||||||
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
||||||
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
||||||
Author: Bratonien
|
Author: Bratonien
|
||||||
|
|||||||
35
runtime/build-webdav-media.sh
Normal file
35
runtime/build-webdav-media.sh
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
CONFIG_FILE="${PIWIGO_CONFIG:-}"
|
||||||
|
[[ -n "$CONFIG_FILE" && -r "$CONFIG_FILE" ]] || { echo "WebDAV-Konfiguration fehlt: ${CONFIG_FILE:-<leer>}" >&2; exit 1; }
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "$CONFIG_FILE"
|
||||||
|
|
||||||
|
: "${PIWIGO_ROOT:?PIWIGO_ROOT fehlt}"
|
||||||
|
: "${CONNECTION_ID:?CONNECTION_ID fehlt}"
|
||||||
|
: "${WEBDAV_BASE_URL:?WEBDAV_BASE_URL fehlt}"
|
||||||
|
: "${WEBDAV_USER:?WEBDAV_USER fehlt}"
|
||||||
|
: "${WEBDAV_PASSWORD_FILE:?WEBDAV_PASSWORD_FILE fehlt}"
|
||||||
|
: "${WEBDAV_MAPPING_FILE:?WEBDAV_MAPPING_FILE fehlt}"
|
||||||
|
: "${STATE_DIR:?STATE_DIR fehlt}"
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
LOCK_FILE="$STATE_DIR/webdav-media.lock"
|
||||||
|
mkdir -p -- "$STATE_DIR"
|
||||||
|
exec 9>"$LOCK_FILE"
|
||||||
|
flock -n 9 || exit 0
|
||||||
|
|
||||||
|
PREVIEW_CACHE="$PIWIGO_ROOT/_data/bratonien-tools/nc-webdav-preview/connection-$CONNECTION_ID"
|
||||||
|
|
||||||
|
php "$SCRIPT_DIR/lib/precache-webdav-previews.php" \
|
||||||
|
--mapping="$WEBDAV_MAPPING_FILE" \
|
||||||
|
--base-url="$WEBDAV_BASE_URL" \
|
||||||
|
--user="$WEBDAV_USER" \
|
||||||
|
--password-file="$WEBDAV_PASSWORD_FILE" \
|
||||||
|
--cache-dir="$PREVIEW_CACHE"
|
||||||
|
|
||||||
|
php "$SCRIPT_DIR/lib/build-webdav-derivatives.php" \
|
||||||
|
--piwigo-root="$PIWIGO_ROOT" \
|
||||||
|
--connection-id="$CONNECTION_ID"
|
||||||
@@ -59,10 +59,6 @@ for target in (status_file, public_file):
|
|||||||
PY
|
PY
|
||||||
}
|
}
|
||||||
|
|
||||||
compact_output() {
|
|
||||||
tail -n 12 | tr '\n' ' ' | sed 's/[[:space:]]\+/ /g; s/^[[:space:]]//; s/[[:space:]]$//'
|
|
||||||
}
|
|
||||||
|
|
||||||
failure() {
|
failure() {
|
||||||
local code="$1" command="$2" line="$3"
|
local code="$1" command="$2" line="$3"
|
||||||
trap - ERR
|
trap - ERR
|
||||||
@@ -94,28 +90,6 @@ python3 "$SCRIPT_DIR/lib/shadow_tree.py" \
|
|||||||
--state "$SHADOW_MAP_FILE"
|
--state "$SHADOW_MAP_FILE"
|
||||||
|
|
||||||
trap - ERR
|
trap - ERR
|
||||||
PREVIEW_CACHE="$PIWIGO_ROOT/_data/bratonien-tools/nc-webdav-preview/connection-$CONNECTION_ID"
|
|
||||||
PREVIEW_OUTPUT=""
|
|
||||||
PREVIEW_EXIT=0
|
|
||||||
if PREVIEW_OUTPUT="$(php "$SCRIPT_DIR/lib/precache-webdav-previews.php" \
|
|
||||||
--mapping="$WEBDAV_MAPPING_FILE" \
|
|
||||||
--base-url="$WEBDAV_BASE_URL" \
|
|
||||||
--user="$WEBDAV_USER" \
|
|
||||||
--password-file="$WEBDAV_PASSWORD_FILE" \
|
|
||||||
--cache-dir="$PREVIEW_CACHE" 2>&1)"; then
|
|
||||||
PREVIEW_EXIT=0
|
|
||||||
else
|
|
||||||
PREVIEW_EXIT=$?
|
|
||||||
fi
|
|
||||||
[[ -z "$PREVIEW_OUTPUT" ]] || printf '%s\n' "$PREVIEW_OUTPUT"
|
|
||||||
if [[ "$PREVIEW_EXIT" -ne 0 ]]; then
|
|
||||||
DETAIL="Exit-Code: $PREVIEW_EXIT"
|
|
||||||
if [[ -n "$PREVIEW_OUTPUT" ]]; then
|
|
||||||
DETAIL+="; Ausgabe: $(printf '%s\n' "$PREVIEW_OUTPUT" | compact_output)"
|
|
||||||
fi
|
|
||||||
write_status error "WebDAV-Vorschaubilder konnten beim Einlesen nicht erzeugt werden" "$DETAIL"
|
|
||||||
exit "$PREVIEW_EXIT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
||||||
PIWIGO_OUTPUT=""
|
PIWIGO_OUTPUT=""
|
||||||
@@ -133,7 +107,7 @@ if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
|||||||
if [[ "$PIWIGO_EXIT" -ne 0 ]]; then
|
if [[ "$PIWIGO_EXIT" -ne 0 ]]; then
|
||||||
DETAIL="Exit-Code: $PIWIGO_EXIT"
|
DETAIL="Exit-Code: $PIWIGO_EXIT"
|
||||||
if [[ -n "$PIWIGO_OUTPUT" ]]; then
|
if [[ -n "$PIWIGO_OUTPUT" ]]; then
|
||||||
DETAIL+="; Ausgabe: $(printf '%s\n' "$PIWIGO_OUTPUT" | compact_output)"
|
DETAIL+="; Ausgabe: $(printf '%s\n' "$PIWIGO_OUTPUT" | tail -n 12 | tr '\n' ' ' | sed 's/[[:space:]]\+/ /g; s/^[[:space:]]//; s/[[:space:]]$//')"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -qi 'Invalid username/password' <<<"$PIWIGO_OUTPUT"; then
|
if grep -qi 'Invalid username/password' <<<"$PIWIGO_OUTPUT"; then
|
||||||
@@ -160,28 +134,21 @@ if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
|||||||
exit "$PIWIGO_EXIT"
|
exit "$PIWIGO_EXIT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DERIVATIVE_OUTPUT=""
|
MEDIA_UNIT="bratonien-nc-media-${CONNECTION_ID}-$(date +%s)"
|
||||||
DERIVATIVE_EXIT=0
|
if ! systemd-run \
|
||||||
if DERIVATIVE_OUTPUT="$(php "$SCRIPT_DIR/lib/build-webdav-derivatives.php" \
|
--quiet \
|
||||||
--piwigo-root="$PIWIGO_ROOT" \
|
--collect \
|
||||||
--connection-id="$CONNECTION_ID" 2>&1)"; then
|
--unit="$MEDIA_UNIT" \
|
||||||
DERIVATIVE_EXIT=0
|
--property=RuntimeMaxSec=30min \
|
||||||
else
|
--setenv="PIWIGO_CONFIG=$CONFIG_FILE" \
|
||||||
DERIVATIVE_EXIT=$?
|
/usr/bin/env bash "$SCRIPT_DIR/build-webdav-media.sh"; then
|
||||||
fi
|
write_status error "Bildaufbereitung konnte nicht im Hintergrund gestartet werden"
|
||||||
[[ -z "$DERIVATIVE_OUTPUT" ]] || printf '%s\n' "$DERIVATIVE_OUTPUT"
|
exit 1
|
||||||
if [[ "$DERIVATIVE_EXIT" -ne 0 ]]; then
|
|
||||||
DETAIL="Exit-Code: $DERIVATIVE_EXIT"
|
|
||||||
if [[ -n "$DERIVATIVE_OUTPUT" ]]; then
|
|
||||||
DETAIL+="; Ausgabe: $(printf '%s\n' "$DERIVATIVE_OUTPUT" | compact_output)"
|
|
||||||
fi
|
|
||||||
write_status error "Piwigo-Derivate für WebDAV-Bilder konnten nicht erzeugt werden" "$DETAIL"
|
|
||||||
exit "$DERIVATIVE_EXIT"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -q 'Piwigo-Synchronisierung per API erfolgreich' <<<"$PIWIGO_OUTPUT"; then
|
if grep -q 'Piwigo-Synchronisierung per API erfolgreich' <<<"$PIWIGO_OUTPUT"; then
|
||||||
write_status ok \
|
write_status ok \
|
||||||
"WebDAV eingelesen, Piwigo synchronisiert und Derivate erzeugt" \
|
"WebDAV eingelesen und Piwigo synchronisiert; Bildaufbereitung läuft im Hintergrund" \
|
||||||
"" \
|
"" \
|
||||||
"api" \
|
"api" \
|
||||||
"ok" \
|
"ok" \
|
||||||
@@ -190,7 +157,7 @@ if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
|||||||
"Fallback wurde nicht benötigt"
|
"Fallback wurde nicht benötigt"
|
||||||
elif grep -q 'Piwigo-Datenbanksynchronisierung per Benutzername/Passwort-Fallback erfolgreich' <<<"$PIWIGO_OUTPUT"; then
|
elif grep -q 'Piwigo-Datenbanksynchronisierung per Benutzername/Passwort-Fallback erfolgreich' <<<"$PIWIGO_OUTPUT"; then
|
||||||
write_status ok \
|
write_status ok \
|
||||||
"WebDAV eingelesen, Piwigo über Fallback synchronisiert und Derivate erzeugt" \
|
"WebDAV eingelesen und Piwigo über Fallback synchronisiert; Bildaufbereitung läuft im Hintergrund" \
|
||||||
"" \
|
"" \
|
||||||
"fallback" \
|
"fallback" \
|
||||||
"not_used" \
|
"not_used" \
|
||||||
@@ -198,8 +165,8 @@ if [[ "${PIWIGO_SYNC_ENABLED:-0}" == "1" ]]; then
|
|||||||
"ok" \
|
"ok" \
|
||||||
"Benutzername/Passwort-Fallback erfolgreich"
|
"Benutzername/Passwort-Fallback erfolgreich"
|
||||||
else
|
else
|
||||||
write_status ok "WebDAV eingelesen, Piwigo synchronisiert und Derivate erzeugt"
|
write_status ok "WebDAV eingelesen und Piwigo synchronisiert; Bildaufbereitung läuft im Hintergrund"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
write_status ok "WebDAV eingelesen und Vorschaubilder erzeugt; Registrierung erfolgt über den bestehenden produktiven Piwigo-Sync"
|
write_status ok "WebDAV eingelesen; Piwigo-Synchronisierung ist für diese Verbindung deaktiviert"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user