feat: Enhance player comment features with AI rewriting and collapsible form

This commit is contained in:
Hördle Bot
2025-12-04 09:42:01 +01:00
parent a725694519
commit 332688d693
2 changed files with 100 additions and 0 deletions

View File

@@ -61,6 +61,8 @@ Eine Web-App inspiriert von Heardle, bei der Nutzer täglich einen Song anhand k
- **Kommentar-Verwaltung:** Kuratoren können Spieler-Kommentare zu ihren Rätseln einsehen, als gelesen markieren und archivieren.
- **Spieler-Kommentare:**
- **Feedback an Kuratoren:** Spieler können nach Abschluss eines Rätsels optional eine Nachricht an die Kuratoren senden.
- **KI-gestützte Formulierungshilfe:** Nachrichten können vor dem Absenden auf Wunsch automatisch von einer KI umformuliert/verbessert werden.
- **Einklappbares Kommentar-Formular:** Das Nachrichtenformular ist dezent als einklappbarer Bereich eingebunden und stört den Spielfluss nicht.
- **Automatische Zuordnung:** Kommentare werden automatisch an relevante Kuratoren verteilt (Genre-Kuratoren, Special-Kuratoren, Global-Kuratoren).
- **Rate-Limiting:** Pro Spieler nur ein Kommentar pro Puzzle möglich.
- **Kontext-Informationen:** Kommentare enthalten vollständigen Rätsel-Kontext (Hördle #, Genre/Special, Titel/Artist).

98
scripts/restore-restic.sh Normal file
View File

@@ -0,0 +1,98 @@
#!/bin/bash
# Restic restore script for Hördle deployment
# Restores files from the Restic repository created by backup-restic.sh
#
# Usage:
# scripts/restore-restic.sh [SNAPSHOT] [TARGET_DIR]
#
# SNAPSHOT : Optional. Restic snapshot reference (ID, tag, or "latest").
# Defaults to "latest".
# TARGET_DIR : Optional. Directory to restore into.
# Defaults to "./restic-restore-<DATE>-<TIME>".
#
# Examples:
# scripts/restore-restic.sh
# → Restore latest snapshot into a new timestamped directory
#
# scripts/restore-restic.sh latest ./restore-latest
# → Restore latest snapshot into ./restore-latest
#
# scripts/restore-restic.sh d3adb33f ./restore-commit
# → Restore specific snapshot ID into ./restore-commit
set -e
echo "💾 Restoring from Restic backup..."
if ! command -v restic >/dev/null 2>&1; then
echo "❌ restic nicht im PATH gefunden. Bitte installiere restic oder füge es zum PATH hinzu."
exit 1
fi
# Erforderliche Umgebungsvariablen prüfen
if [ -z "$RESTIC_PASSWORD" ]; then
echo "❌ RESTIC_PASSWORD ist nicht gesetzt. Abbruch."
exit 1
fi
if [ -z "$RESTIC_AUTH_USER" ] || [ -z "$RESTIC_AUTH_PASSWORD" ]; then
echo "❌ RESTIC_AUTH_USER oder RESTIC_AUTH_PASSWORD ist nicht gesetzt. Abbruch."
exit 1
fi
# Repository-URL auf Basis des Backup-Skripts
RESTIC_REPO="rest:https://${RESTIC_AUTH_USER}:${RESTIC_AUTH_PASSWORD}@restic.elpatron.me/"
# Passwort für restic exportieren
export RESTIC_PASSWORD
# Snapshot-Referenz und Zielverzeichnis bestimmen
SNAPSHOT_REF="${1:-latest}"
TIMESTAMP="$(date +%Y-%m-%d_%H-%M-%S)"
DEFAULT_TARGET_DIR="./restic-restore-${TIMESTAMP}"
TARGET_DIR="${2:-$DEFAULT_TARGET_DIR}"
echo " Repository : $RESTIC_REPO"
echo " Snapshot : $SNAPSHOT_REF"
echo " Zielordner : $TARGET_DIR"
# Prüfen, ob Repository existiert
if ! restic -r "$RESTIC_REPO" snapshots >/dev/null 2>&1; then
echo "❌ Kein gültiges Restic-Repository gefunden (oder keine Snapshots vorhanden)."
exit 1
fi
# Zielverzeichnis vorbereiten
if [ -e "$TARGET_DIR" ] && [ ! -d "$TARGET_DIR" ]; then
echo "$TARGET_DIR existiert und ist kein Verzeichnis. Abbruch."
exit 1
fi
if [ ! -d "$TARGET_DIR" ]; then
echo " Erstelle Zielverzeichnis $TARGET_DIR ..."
mkdir -p "$TARGET_DIR"
fi
echo " Verfügbare Snapshots (gekürzt):"
restic -r "$RESTIC_REPO" snapshots --compact || true
echo
echo " Starte Restic-Restore..."
RESTIC_EXIT_CODE=0
# Standard-Restore: gesamtes Repo in Zielverzeichnis
# (Das spiegelt die beim Backup gesicherten Pfade unterhalb von TARGET_DIR.)
restic -r "$RESTIC_REPO" restore "$SNAPSHOT_REF" \
--target "$TARGET_DIR" || RESTIC_EXIT_CODE=$?
if [ $RESTIC_EXIT_CODE -eq 0 ]; then
echo "✅ Restic-Restore erfolgreich abgeschlossen."
echo " Wiederhergestellte Daten befinden sich in: $TARGET_DIR"
exit 0
else
echo "⚠️ Restic-Restore fehlgeschlagen (Exit-Code: $RESTIC_EXIT_CODE)."
exit $RESTIC_EXIT_CODE
fi