Gefällt Ihnen diese App? Danke fürs ⭐️
Decluttarr
Inhaltsverzeichnis
- Überblick
- Abhängigkeiten & Hinweise & FAQ
- Erste Schritte
- Erklärung der Einstellungen
- Credits
- Haftungsausschluss
Überblick
Decluttarr hält die Radarr-, Sonarr-, Lidarr-, Readarr- und Whisparr-Warteschlange frei von blockierten/überflüssigen Downloads
Funktionsübersicht:
- Downloads, die beim Herunterladen von Metadaten stecken bleiben, automatisch löschen (und den Download von einer anderen Quelle auslösen)
- Fehlgeschlagene Downloads automatisch löschen (& Download von einer anderen Quelle auslösen)
- Downloads von Radarr/Sonarr/etc. automatisch löschen. inzwischen gelöschte Elemente („Orphan Downloads“)
- Angehaltene Downloads automatisch löschen, nachdem festgestellt wurde, dass sie mehrmals hintereinander angehalten wurden (und den Download von einer anderen Quelle auslösen)
- Langsame Downloads automatisch löschen, nachdem festgestellt wurde, dass sie mehrmals hintereinander langsam sind (und Downloads von einer anderen Quelle auslösen)
- Downloads von Radarr/Sonarr/etc. automatisch löschen. Elemente, die nicht überwacht werden
- Downloads, deren Import fehlgeschlagen ist, automatisch löschen, da es sich nicht um ein Format-Upgrade handelt (d. h. es ist bereits eine bessere Version vorhanden).
Sie können dies lokal ausführen, indem Sie main.py starten oder das Docker-Image abrufen. Sie finden ein Beispiel für docker-compose.yml im Docker-Ordner.
Abhängigkeiten & Hinweise & FAQ
- Verwenden Sie Sonarr v4 und Radarr v5 (derzeit Tag „nightly“ anstelle von „latest“), da sonst bestimmte Funktionen möglicherweise nicht richtig funktionieren
- qBittorrent wird empfohlen, ist aber nicht erforderlich. Wenn Sie qBittorrent nicht verwenden, treten die folgenden Einschränkungen auf:
- Bei der Erkennung langsamer Downloads werden die von den *arr-Apps bereitgestellten Geschwindigkeiten verwendet, was weniger genau ist als das, was qBittorrent bei direkter Abfrage zurückgibt
- Die Funktion zum Schutz von Downloads vor dem Entfernen (NO_STALLED_REMOVAL_QBIT_TAG) funktioniert nicht
- Die Funktion, private Tracker zu ignorieren, funktioniert nicht
- Wenn Sie seltsame Fehler wie „10/3 Mal gefunden“ sehen, sollten Sie die Einstellung „Blockierte Torrent-Hashes beim Grabbing ablehnen“ aktivieren. Bei Nightly Radarr/Sonarr/Readarr/Lidarr/Whisparr befindet sich die Option unter „Einstellungen/Indexer“ in den erweiterten Optionen jedes Indexers, bei Prowlarr unter „Einstellungen/Apps“ und dann in den erweiterten Einstellungen der jeweiligen App
- Wenn defekte Torrents entfernt werden, werden die dazugehörigen Dateien gelöscht
- Über alle Entfernungsarten hinweg: Ein neuer Download aus einer anderen Quelle wird automatisch von Radarr/Sonarr/Lidar/Readarr/Whisparr hinzugefügt (sofern verfügbar).
- Wenn Sie qBittorrent verwenden und keiner Ihrer Torrents entfernt wird und die ausführlichen Protokolle sagen, dass alle Torrents durch NO_STALLED_REMOVAL_QBIT_TAG geschützt sind, auch wenn dies nicht der Fall ist, verwenden Sie möglicherweise eine qBittorrent-Version, die Probleme mit API-Aufrufen hat, und Sie sollten einen Wechsel in Betracht ziehen zu einem anderen qBit-Bild (siehe #56)
- Derzeit werden „*Arr“-Apps nur auf Englisch unterstützt. Weitere Einzelheiten finden Sie in Ausgabe Nr. 132
- Wenn Yaml-Probleme auftreten, überprüfen Sie bitte die geschlossenen Probleme. Es gibt unterschiedliche Schreibweisen, und es kann durchaus sein, dass das von Ihnen gefundene Problem in einem der Probleme bereits gelöst wurde. Sobald Sie Ihr Problem herausgefunden haben, können Sie Ihr Yaml gerne hier posten, um anderen zu helfen: #173
- declutarr unterstützt nur einzelne Radarr-/Sonarr-Instanzen. Wenn Sie über mehrere Instanzen dieser *arrs verfügen, besteht die Lösung darin, auch mehrere decluclutarrs auszuführen
Erste Schritte
Es gibt zwei Möglichkeiten, dies auszuführen:
- Als Docker-Container mit Docker-Compose
- Durch Klonen des Repositorys und manuelles Ausführen des Skripts
Im Folgenden werden beide Möglichkeiten erklärt und darunter eine Erklärung zu den unterschiedlichen Einstellungen
Methode 1: Docker
- Erstellen Sie eine
docker-compose.yml
Datei - Nutzen Sie das Folgende als Grundlage und passen Sie die Einstellungen an Ihre Bedürfnisse an
version: "3.3"
services:
decluttarr:
image: ghcr.io/manimatter/decluttarr:latest
container_name: decluttarr
restart: always
environment:
TZ=Europe/Zurich
PUID=1000
PGID=1000
## General
# TEST_RUN=True
# SSL_VERIFICATION=False
LOG_LEVEL: INFO
## Features
REMOVE_TIMER: 10
REMOVE_FAILED: True
REMOVE_FAILED_IMPORTS: True
REMOVE_METADATA_MISSING: True
REMOVE_MISSING_FILES: True
REMOVE_ORPHANS: True
REMOVE_SLOW: True
REMOVE_STALLED: True
REMOVE_UNMONITORED: True
RUN_PERIODIC_RESCANS: '
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}'
# Feature Settings
PERMITTED_ATTEMPTS: 3
NO_STALLED_REMOVAL_QBIT_TAG: Don't Kill
REMOVE_SLOW: True
MIN_DOWNLOAD_SPEED: 100
FAILED_IMPORT_MESSAGE_PATTERNS: '
[
"Not a Custom Format upgrade for existing",
"Not an upgrade for existing"
]'
## Radarr
RADARR_URL: http://radarr:7878
RADARR_KEY: $RADARR_API_KEY
## Sonarr
SONARR_URL: http://sonarr:8989
SONARR_KEY: $SONARR_API_KEY
## Lidarr
LIDARR_URL=http://lidarr:8686
LIDARR_KEY=$LIDARR_API_KEY
## Readarr
READARR_URL=http://readarr:8787
READARR_KEY=$READARR_API_KEY
## Whisparr
WHISPARR_URL=http://whisparr:6969
WHISPARR_KEY=$WHISPARR_API_KEY
## qBitorrent
QBITTORRENT_URL: http://qbittorrent:8080
# QBITTORRENT_USERNAME=Your name
# QBITTORRENT_PASSWORD=Your password
- Führen Sie
docker-compose up -d
in dem Verzeichnis aus, in dem sich die Datei befindet, um den Docker-Container zu erstellen. Hinweis: Ziehen Sie immer die „ neueste “ Version. Die „dev“-Version dient nur zum Testen und sollte nur abgerufen werden, wenn Code beigesteuert oder mit Fehlerkorrekturen unterstützt wird
Methode 2: Manuelle Ausführung
- Klonen Sie das Repository mit
git clone -b main https://github.com/ManiMatter/decluttarr.git
- Benennen Sie das
config.conf-Example
im Konfigurationsordner in config.conf
um - Passen Sie
config.conf
an Ihre Bedürfnisse an - Installieren Sie die in docker/requirements.txt aufgeführten Bibliotheken (pip install -r require.txt).
- Führen Sie das Skript mit
python3 main.py
aus. Hinweis: Die config.conf
wird bei der Ausführung über docker-compose.yml ignoriert
Erklärung der Einstellungen
Allgemeine Einstellungen
Konfiguriert das allgemeine Verhalten der Anwendung (über alle Funktionen hinweg)
LOG_LEVEL
- Legt die Ebene fest, auf der die Protokollierung stattfinden soll
-
INFO
zeigt nur Änderungen an, die auf Radarr/Sonarr/Lidarr/Readarr/Whisparr angewendet wurden -
VERBOSE
zeigt jede durchgeführte Prüfung an, auch wenn keine Änderung vorgenommen wird -
DEBUG
zeigt sehr detaillierte Informationen an, die nur zum Debuggen erforderlich sind - Typ: Zeichenfolge
- Zulässige Werte: CRITICAL, ERROR, WARNING, INFO, VERBOSE, DEBUG
- Ist obligatorisch: Nein (Standardeinstellung ist INFO)
TEST_RUN
- Ermöglicht Ihnen, dieses Tool sicher auszuprobieren. Wenn aktiv, werden Downloads nicht entfernt
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
SSL_VERIFICATION
- Aktiviert oder deaktiviert die SSL-Zertifikatsüberprüfung für alle API-Aufrufe
-
True
bedeutet, dass die SSL-Zertifikatsüberprüfung aktiviert ist - Warnung: Es ist wichtig zu beachten, dass die Deaktivierung der SSL-Überprüfung Auswirkungen auf die Sicherheit haben kann, da das System dadurch anfällig für Man-in-the-Middle-Angriffe wird. Dies sollte nur in einer kontrollierten und sicheren Umgebung erfolgen, in der die Risiken gut verstanden und gemindert werden
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (standardmäßig „True“)
Funktionseinstellungen
Steuert, welche Art der Bereinigung auf die Download-Warteschlange angewendet wird
REMOVE_TIMER
- Legt die Häufigkeit fest, mit der die Warteschlange auf verwaiste und blockierte Downloads überprüft wird
- Typ: Ganzzahl
- Einheit: Minuten
- Ist obligatorisch: Nein (Standard ist 10)
REMOVE_FAILED
- Steuert, ob fehlgeschlagene Downloads ohne Verbindungen aus der Warteschlange entfernt werden
- Diese Downloads werden nicht zur Sperrliste hinzugefügt. Ein neuer Download von einer anderen Quelle wird automatisch von Radarr/Sonarr/Lidar/Readarr/Whisparr hinzugefügt (falls verfügbar).
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_FAILED_IMPORTS
- Steuert, ob Downloads, deren Import fehlgeschlagen ist, aus der Warteschlange entfernt werden
- Dies kann beispielsweise passieren, wenn bereits eine bessere Version vorliegt
- Hinweis: Ein Import wird nur dann als fehlgeschlagen betrachtet, wenn die Importmeldung eine Warnung enthält, die in FAILED_IMPORT_MESSAGE_PATTERNS aufgeführt ist (siehe unten).
- Diese Downloads werden zur Sperrliste hinzugefügt
- Wenn die Einstellung IGNORE_PRIVATE_TRACKERS wahr ist und der betroffene Torrent ein privater Tracker ist, wird das Warteschlangenelement entfernt, die Torrent-Dateien bleiben jedoch erhalten
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_METADATA_MISSING
- Steuert, ob Downloads, die beim Abrufen von Metadaten hängen bleiben, aus der Warteschlange entfernt werden
- Diese Downloads werden zur Sperrliste hinzugefügt, sodass sie nicht erneut angefordert werden
- Ein neuer Download von einer anderen Quelle wird automatisch von Radarr/Sonarr/Lidar/Readarr/Whisparr hinzugefügt (falls verfügbar).
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_MISSING_FILES
- Steuert, ob Downloads mit der Warnung „Dateien fehlen“ aus der Warteschlange entfernt werden
- Diese Downloads werden nicht zur Sperrliste hinzugefügt
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_ORPHANS
- Steuert, ob verwaiste Downloads aus der Warteschlange entfernt werden
- Verwaiste Downloads sind solche, die nicht mehr zu den angeforderten Medien gehören (da die Medien nach dem Start des Downloads aus Radarr/Sonarr/Lidar/Readarr/Whisparr entfernt wurden).
- Diese Downloads werden nicht zur Sperrliste hinzugefügt
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_SLOW
- Steuert, ob langsame Downloads aus der Warteschlange entfernt werden
- Langsame Downloads werden zur Sperrliste hinzugefügt, sodass sie in Zukunft nicht erneut angefordert werden
- Hinweis: Gilt nicht für Usenet-Downloads (da Benutzer dort für eine bestimmte Geschwindigkeit bezahlen, sollte es nicht zu einer Verlangsamung kommen).
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_STALLED
- Steuert, ob blockierte Downloads ohne Verbindungen aus der Warteschlange entfernt werden
- Diese Downloads werden zur Sperrliste hinzugefügt, sodass sie in Zukunft nicht erneut angefordert werden
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
REMOVE_UNMONITORED
- Steuert, ob Downloads, die zu nicht überwachten Medien gehören, aus der Warteschlange entfernt werden
- Hinweis: Wird nur aus der Warteschlange entfernt, wenn alle TV-Sendungen, die von demselben Download abhängig sind, nicht überwacht werden
- Diese Downloads werden nicht zur Sperrliste hinzugefügt
- Hinweis: Da Sonarr keine Multi-Season-Pakete unterstützt, sollten Sie es beim Herunterladen mit
NO_STALLED_REMOVAL_QBIT_TAG
schützen, was weiter unten erläutert wird - Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (Standardeinstellung: Falsch)
RUN_PERIODIC_RESCANS
- Steuert, ob automatisch Suchen nach Elementen ausgelöst werden, die fehlen oder den Grenzwert noch nicht erreicht haben
- Hinweis: Unterstützt derzeit nur Radarr/Sonarr (Lidarr abhängig von: Lidarr/Lidarr#5084 / Readarr abhängig von: Readarr/Readarr#3724)
- Typ: Wörterbuch
- Ist obligatorisch: Nein (Standardmäßig werden keine Suchvorgänge automatisch ausgelöst)
- „SONARR“/„RADARR“ schaltet die automatische Suche nach den jeweiligen Instanzen ein
- „MISSING“/„CUTOFF_UNMET“ aktiviert die automatische Suche nach den gesuchten Artikeln (standardmäßig „True“).
- „MAX_CONCURRENT_SCANS“ gibt die maximale Anzahl von Elementen an, die bei jedem Scan durchsucht werden sollen. Dieser Wert bestimmt, wie viele Elemente pro Suchvorgang verarbeitet werden, der gemäß dem durch REMOVE_TIMER festgelegten Intervall erfolgt.
- Hinweis: Das Limit gilt pro Fahndungsliste. Wenn also sowohl Radarr als auch Sonarr für die automatische Suche nach fehlenden und nicht erfüllten Elementen eingerichtet sind, kann die tatsächliche Anzahl das Vierfache von MAX_CONCURRENT_SCANS betragen
- „MIN_DAYS_BEFORE_RESCAN“ steuert die Tage, die vergehen müssen, bevor ein Artikel erneut für einen Scan berücksichtigt wird
- Hinweis: RUN_PERIODIC_RESCANS durchsucht immer die Elemente, nach denen am längsten gesucht wurde
RUN_PERIODIC_RESCANS: '
{
"SONARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7},
"RADARR": {"MISSING": true, "CUTOFF_UNMET": true, "MAX_CONCURRENT_SCANS": 3, "MIN_DAYS_BEFORE_RESCAN": 7}
}'
Es gibt verschiedene Yaml-Notationen. Einige Benutzer haben die untenstehende alternative Notation vorgeschlagen. Wenn Sie auf Probleme stoßen, überprüfen Sie bitte zuerst die geschlossenen Probleme, bevor Sie ein neues öffnen (z. B. Nr. 173).
- RUN_PERIODIC_RESCANS=[
{
"SONARR":[{"MISSING":true, "CUTOFF_UNMET":true, "MAX_CONCURRENT_SCANS":3, "MIN_DAYS_BEFORE_RESCAN":7}],
"RADARR":[{"MISSING":true, "CUTOFF_UNMET":true, "MAX_CONCURRENT_SCANS":3, "MIN_DAYS_BEFORE_RESCAN":7}]
}
MIN_DOWNLOAD_SPEED
- Legt die minimale Download-Geschwindigkeit für aktive Downloads fest
- Wenn die Vergrößerung der heruntergeladenen Dateigröße eines Downloads zwischen zwei aufeinanderfolgenden Überprüfungen geringer ist als dieser Wert, gilt der Download als langsam und wird entfernt, wenn er häufiger als die zulässigen Versuche auftritt
- Typ: Ganzzahl
- Einheit: KByte pro Sekunde
- Ist obligatorisch: Nein (Standardwert ist 100, wird aber nur erzwungen, wenn „REMOVE_SLOW“ wahr ist)
PERMITTED_ATTEMPTS
- Definiert, wie oft ein Download als angehalten, langsam oder hängengeblieben beim Herunterladen von Metadaten erkannt werden muss, bevor er entfernt wird
- Typ: Ganzzahl
- Einheit: Anzahl der Scans
- Ist obligatorisch: Nein (Standard ist 3)
NO_STALLED_REMOVAL_QBIT_TAG
- Mit diesem Tag markierte Downloads in qBittorrent werden nicht entfernt
- Die Funktion ist nicht verfügbar, wenn qBittorrent nicht als Torrent-Manager verwendet wird
- Gilt für alle Arten der Entfernung (d. h. nichts wird automatisch von decluttarr entfernt)
- Hinweis: Möglicherweise möchten Sie „Erneute Überprüfung erzwingen“ ausprobieren, um Ihre blockierten Torrents manuell wieder zum Laufen zu bringen
- Tag wird automatisch in qBittorrent erstellt (erforderlich, dass qBittorrent unter
QBITTORRENT_URL
erreichbar ist) - Wichtig: Schützt auch nicht überwachte Downloads vor dem Entfernen (relevant für Multi-Season-Pakete)
- Typ: Zeichenfolge
- Ist obligatorisch: Nein (Standardeinstellung:
Don't Kill
)
IGNORE_PRIVATE_TRACKERS
- Private Torrents in qBittorrent werden nicht aus der Warteschlange entfernt, wenn dies auf „true“ gesetzt ist
- Funktioniert nur, wenn qBittorrent verwendet wird (funktioniert nicht mit Übertragung usw.)
- Gilt für alle Arten der Entfernung (d. h. nichts wird automatisch von decluttarr entfernt); Die einzige Ausnahme hiervon ist REMOVE_NO_FORMAT_UPGRADE, wo bei privaten Trackern das Warteschlangenelement entfernt wird (die Torrent-Dateien bleiben jedoch erhalten).
- Hinweis: Möglicherweise möchten Sie „Erneute Überprüfung erzwingen“ ausprobieren, um Ihre blockierten Torrents manuell wieder zum Laufen zu bringen
- Typ: Boolesch
- Zulässige Werte: True, False
- Ist obligatorisch: Nein (standardmäßig „True“)
FAILED_IMPORT_MESSAGE_PATTERNS
- Funktioniert zusammen mit REMOVE_FAILED_IMPORTS (nur relevant, wenn diese Einstellung wahr ist)
- Definiert die Muster, anhand derer das Tool entscheidet, ob ein abgeschlossener Download mit Warnungen beim Import als fehlgeschlagen betrachtet werden soll
- Warteschlangenelemente gelten als fehlgeschlagen, wenn eines der angegebenen Muster in einer der Nachrichten des Warteschlangenelements enthalten ist
- Hinweis: Wenn es leer bleibt (oder nicht angegeben wird), gilt jeder ausstehende Import mit Warnung als fehlgeschlagen
- Typ: Liste
- Empfohlene Werte: [„Kein benutzerdefiniertes Format-Upgrade für bestehende“, „Kein Upgrade für bestehende“]
- Ist obligatorisch: Nein (Standardeinstellung ist [], was bedeutet, dass alle Nachrichten Fehler sind)
Radarr-Bereich
Definiert die Radarr-Instanz, auf der die Download-Warteschlange aufgeräumt werden soll
RADARR_URL
- URL, unter der die Instanz erreichbar ist
- Wenn nicht definiert, wird diese Instanz nicht überwacht
RADARR_KEY
- Ihr API-Schlüssel für Radarr
Sonarr-Bereich
Definiert die Sonarr-Instanz, in der die Download-Warteschlange aufgeräumt werden soll
SONARR_URL
- URL, unter der die Instanz erreichbar ist
- Wenn nicht definiert, wird diese Instanz nicht überwacht
SONARR_KEY
- Ihr API-Schlüssel für Sonarr
Lidarr-Abschnitt
Definiert die Lidarr-Instanz, in der die Download-Warteschlange aufgeräumt werden soll
LIDARR_URL
- URL, unter der die Instanz erreichbar ist
- Wenn nicht definiert, wird diese Instanz nicht überwacht
LIDARR_KEY
- Ihr API-Schlüssel für Lidarr
Readarr-Abschnitt
Definiert die Readarr-Instanz, in der die Download-Warteschlange aufgeräumt werden soll
READARR_URL
- URL, unter der die Instanz erreichbar ist
- Wenn nicht definiert, wird diese Instanz nicht überwacht
READARR_KEY
- Ihr API-Schlüssel für readarr
Whisparr-Abschnitt
Definiert die Whisparr-Instanz, in der die Download-Warteschlange aufgeräumt werden soll
WHISPARR_URL
- URL, unter der die Instanz erreichbar ist
- Wenn nicht definiert, wird diese Instanz nicht überwacht
WHISPARR_KEY
- Ihr API-Schlüssel für whisparr
qBittorrent-Bereich
Definiert Einstellungen für die Verbindung mit qBittorrent. Wenn ein anderer Torrent-Manager verwendet wird, kommentieren Sie diesen Abschnitt aus (siehe oben die daraus resultierenden Einschränkungen in der Funktionalität).
QBITTORRENT_URL
- URL, unter der die Instanz erreichbar ist
- Wenn es nicht definiert ist, hat NO_STALLED_REMOVAL_QBIT_TAG keine Wirkung
QBITTORRENT_USERNAME
- Benutzername, der zum Anmelden bei qBittorrent verwendet wird
- Optional; nicht erforderlich, wenn die Authentifizierungsumgehung bei qBittorrent aktiviert ist (z. B. für lokale Verbindungen)
QBITTORRENT_PASSWORD
- Passwort für die Anmeldung bei qBittorrent
- Optional; nicht erforderlich, wenn die Authentifizierungsumgehung bei qBittorrent aktiviert ist (z. B. für lokale Verbindungen)
Credits
- Skript zur Erkennung blockierter Downloads, erweitert um Code von MattDGTL/sonarr-radarr-queue-cleaner
- Skript zum Auslesen der um syncarr/syncarr erweiterten Konfiguration
- SONARR/RADARR-Team und Mitwirkende für ihr großartiges Produkt, ihre API-Dokumentation und ihre Anleitung in ihrem Discord-Kanal
- Besonderer Dank geht an sie für das Hinzufügen eines zusätzlichen Flags zu ihrer API, das es diesem Skript ermöglichte, Downloads zu erkennen, die bei der Suche nach Metadaten stecken geblieben sind
- craggles17 für Armkompatibilität
- Fxsch für verbesserte Dokumentation / ReadMe
Haftungsausschluss
Für dieses Skript wird keinerlei Gewährleistung übernommen und Sie verwenden es auf eigenes Risiko