README.md aktualisiert
This commit is contained in:
		
							
								
								
									
										136
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								README.md
									
									
									
									
									
								
							@@ -1,2 +1,136 @@
 | 
			
		||||
# plex-anti-account-sharing
 | 
			
		||||
# Telegram Plex Bot
 | 
			
		||||
 | 
			
		||||
Dieser Bot überwacht Plex-Wiedergaben, um Account Sharing zu erkennen und zu verhindern. Er kann Benutzer verwarnen, sperren und bietet ein Dashboard zur Überwachung der Aktivitäten.
 | 
			
		||||
 | 
			
		||||
## Funktionen
 | 
			
		||||
 | 
			
		||||
-   **Account Sharing Erkennung:** Überwacht aktive Plex-Sessions, um festzustellen, ob mehrere Geräte gleichzeitig denselben Account verwenden.
 | 
			
		||||
-   **Benachrichtigungen:** Sendet Warnungen an einen Telegram-Kanal, wenn Account Sharing erkannt wird.
 | 
			
		||||
-   **Automatische Sperrung:** Sperrt Benutzer automatisch nach einer bestimmten Anzahl von Verstößen.
 | 
			
		||||
-   **Whitelist:** Ermöglicht das Hinzufügen von Benutzern zu einer Whitelist, um die Account Sharing-Prüfung zu umgehen.
 | 
			
		||||
-   **Dashboard:** Bietet ein Web-Dashboard zur Anzeige von Statistiken wie aktive Sessions, gesperrte Benutzer und Verstöße.
 | 
			
		||||
-   **Wartungsmodus:** Ermöglicht das Anhalten aller Bot-Aktivitäten während der Wartung.
 | 
			
		||||
-   **Telegram-Befehle:** Bietet verschiedene Telegram-Befehle zur Steuerung des Bots und zur Überwachung des Plex-Servers.
 | 
			
		||||
 | 
			
		||||
## Voraussetzungen
 | 
			
		||||
 | 
			
		||||
-   [Node.js](https://nodejs.org/)
 | 
			
		||||
-   [npm](https://www.npmjs.com/) (oder [Yarn](https://yarnpkg.com/))
 | 
			
		||||
-   Einen Telegram Bot Token (erhalten von [BotFather](https://t.me/botfather))
 | 
			
		||||
-   Eine Plex Media Server Instanz
 | 
			
		||||
-   Eine `.env`-Datei mit den folgenden Umgebungsvariablen:
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    TELEGRAM_BOT_TOKEN=Dein_Telegram_Bot_Token
 | 
			
		||||
    PLEX_URL=Deine_Plex_URL (z.B. http://localhost:32400)
 | 
			
		||||
    PLEX_TOKEN=Dein_Plex_Token
 | 
			
		||||
    TELEGRAM_CHAT_ID=Deine_Telegram_Chat_ID
 | 
			
		||||
    DASHBOARD_PASSWORD=Dein_Dashboard_Passwort
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
1.  **Clone das Repository:**
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    git clone <repository-url>
 | 
			
		||||
    cd <repository-name>
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
2.  **Installiere die Abhängigkeiten:**
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    npm install
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
    oder mit Yarn:
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    yarn install
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
3.  **Konfiguriere die Umgebungsvariablen:**
 | 
			
		||||
 | 
			
		||||
    Erstelle eine `.env`-Datei im Hauptverzeichnis des Projekts und füge die erforderlichen Umgebungsvariablen hinzu (siehe "Voraussetzungen").
 | 
			
		||||
 | 
			
		||||
4.  **Starte den Bot:**
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    npm start
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
    oder mit Yarn:
 | 
			
		||||
 | 
			
		||||
    ```
 | 
			
		||||
    yarn start
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
## Konfiguration
 | 
			
		||||
 | 
			
		||||
### .env Datei
 | 
			
		||||
 | 
			
		||||
Die `.env`-Datei muss im Hauptverzeichnis des Projekts erstellt werden und die folgenden Variablen enthalten:
 | 
			
		||||
 | 
			
		||||
-   `TELEGRAM_BOT_TOKEN`: Der Token deines Telegram Bots. Du erhältst diesen von [BotFather](https://t.me/botfather).
 | 
			
		||||
-   `PLEX_URL`: Die URL zu deinem Plex Media Server.  Stelle sicher, dass du das Protokoll (http oder https) angibst. Beispiel: `http://localhost:32400` oder `https://dein-plex-server.de`.
 | 
			
		||||
-   `PLEX_TOKEN`: Dein Plex Token.  Du findest diesen in den Plex Server Einstellungen.
 | 
			
		||||
-   `TELEGRAM_CHAT_ID`: Die Chat-ID des Telegram-Kanals oder der Gruppe, in dem/der der Bot Benachrichtigungen senden soll.  Du kannst diese ID mit einem anderen Bot wie z.B. dem "IDBot" herausfinden.
 | 
			
		||||
-   `DASHBOARD_PASSWORD`: Das Passwort für den Zugriff auf das Dashboard.
 | 
			
		||||
 | 
			
		||||
### Whitelist
 | 
			
		||||
 | 
			
		||||
Die Whitelist wird in der Datei `whitelist.json` gespeichert. Du kannst Benutzer manuell hinzufügen oder entfernen, indem du die Datei bearbeitest oder die Telegram-Befehle verwendest.
 | 
			
		||||
 | 
			
		||||
### Überwachte Benutzer
 | 
			
		||||
 | 
			
		||||
Die Liste der überwachten Benutzer ist im Code in der Variable `monitoredUsers` definiert.  Passe diese Liste an, um die Plex-Benutzernamen der Benutzer einzutragen, die auf Account Sharing überwacht werden sollen.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Telegram Befehle
 | 
			
		||||
 | 
			
		||||
-   `/start`: Startet den Bot.
 | 
			
		||||
-   `/help`: Zeigt eine Liste der verfügbaren Befehle und eine kurze Beschreibung an.
 | 
			
		||||
-   `/reload`: Führt eine manuelle Überprüfung aller aktiven Wiedergaben durch.
 | 
			
		||||
-   `/stats`: Zeigt Statistiken zu aktiven Sessions, gebannten Benutzern, Verstößen und Whitelist-Nutzern an.
 | 
			
		||||
-   `/whitelist <Benutzername>`: Fügt einen Benutzer zur Whitelist hinzu (verhindert Accountsharing-Überprüfung).
 | 
			
		||||
-   `/remove_whitelist <Benutzername>`: Entfernt einen Benutzer von der Whitelist.
 | 
			
		||||
-   `/unban <Benutzername>`: Hebt den Bann für einen Benutzer auf.
 | 
			
		||||
-   `/multiple_devices`: Zeigt Benutzer mit mehreren Geräten an.
 | 
			
		||||
-   `/server_status`: Prüft den Status des Plex-Servers.
 | 
			
		||||
-   `/maintenance`: Aktiviert den Wartungsmodus.
 | 
			
		||||
-   `/end_maintenance`: Deaktiviert den Wartungsmodus.
 | 
			
		||||
 | 
			
		||||
## Dashboard
 | 
			
		||||
 | 
			
		||||
Das Dashboard ist unter `/index` auf dem Server erreichbar (z.B. `http://localhost:3000/index`). Du musst das in der `.env` Datei definierte Passwort eingeben, um auf das Dashboard zuzugreifen. Das Dashboard zeigt Statistiken zu aktiven Sessions, gebannten Benutzern, Verstößen, CPU- und RAM-Auslastung des Servers.
 | 
			
		||||
 | 
			
		||||
## Funktionsweise
 | 
			
		||||
 | 
			
		||||
Der Bot führt regelmäßig die Funktion `checkPlexActivity()` aus, um die aktuellen Plex-Sessions abzurufen.  Für jede Session werden folgende Prüfungen durchgeführt:
 | 
			
		||||
 | 
			
		||||
1.  **Whitelist-Prüfung:** Wenn der Benutzer auf der Whitelist steht, werden keine weiteren Prüfungen durchgeführt.
 | 
			
		||||
2.  **Account Sharing-Prüfung:** Wenn der Benutzer mehr als eine aktive Session hat, wird dies als Account Sharing gewertet.
 | 
			
		||||
3.  **Verstöße zählen:** Bei jedem erkannten Account Sharing wird ein Verstoß für den Benutzer gezählt.
 | 
			
		||||
4.  **Automatische Sperrung:** Wenn ein Benutzer eine bestimmte Anzahl von Verstößen erreicht hat, wird er automatisch für eine bestimmte Zeit gesperrt.
 | 
			
		||||
5.  **Benachrichtigungen:** Der Bot sendet Benachrichtigungen an den Telegram-Kanal über erkannte Account Sharing-Vorfälle, Warnungen und Sperrungen.
 | 
			
		||||
 | 
			
		||||
## Erweiterungen
 | 
			
		||||
 | 
			
		||||
-   **Erweiterte Konfiguration:**  Implementiere eine Konfigurationsdatei, um weitere Einstellungen wie die Anzahl der zulässigen Verstöße, die Dauer der Sperre und die Intervalle für die Prüfungen zu konfigurieren.
 | 
			
		||||
-   **Datenbankintegration:**  Verwende eine Datenbank zur Speicherung von Benutzerdaten, Verstößen und Sperrungen, um die Datenpersistenz zu verbessern.
 | 
			
		||||
-   **Benutzerfreundlichere Befehle:** Implementiere komplexere Befehle mit Inline-Tastaturen für eine einfachere Bedienung.
 | 
			
		||||
-   **Anpassbare Nachrichten:** Ermögliche die Anpassung der Nachrichten, die der Bot an den Telegram-Kanal sendet.
 | 
			
		||||
 | 
			
		||||
## Fehlerbehebung
 | 
			
		||||
 | 
			
		||||
-   **Bot startet nicht:** Stelle sicher, dass alle Umgebungsvariablen in der `.env`-Datei korrekt konfiguriert sind.
 | 
			
		||||
-   **Bot sendet keine Benachrichtigungen:** Überprüfe, ob der Bot die Berechtigung hat, Nachrichten an den Telegram-Kanal zu senden.
 | 
			
		||||
-   **Dashboard ist nicht erreichbar:** Stelle sicher, dass der Server läuft und dass die Firewall den Zugriff auf den Port (standardmäßig 3000) erlaubt.
 | 
			
		||||
 | 
			
		||||
## Lizenz
 | 
			
		||||
 | 
			
		||||
[MIT](LICENSE)
 | 
			
		||||
 | 
			
		||||
## Autor
 | 
			
		||||
 | 
			
		||||
M_Viper
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user