README.md aktualisiert
This commit is contained in:
parent
3a59af1349
commit
ffece3e544
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user