testflight-watcher/README.md

104 lines
4.2 KiB
Markdown

<a href="#" target="_blank"><img alt="Banner" src="https://pics.re/r/7tv16WJTaE.png?compress=false"></a>
# TestFlight Watcher 🚀
## Beschreibung 📜
Der **TestFlight Watcher** ist ein Skript, das TestFlight-Betas überwacht und Benachrichtigungen versendet, wenn neue Plätze für Betatests verfügbar sind. Es prüft regelmäßig die angegebenen TestFlight-URLs und benachrichtigt den Benutzer, wenn Plätze verfügbar werden. Diese Benachrichtigungen werden über die [Pushover-API](https://pushover.net/) versendet.
## Funktionen 🛠️
- Überwachung von TestFlight-Betas.
- Senden von Benachrichtigungen bei Verfügbarkeit von Testplätzen.
- Einfache Verwaltung der zu überwachenden URLs über eine Konfigurationsdatei oder über das Setup-Script.
- Webserver zum Löschen von bereits angenommenen Beta-Einladungen.
- Einstellbare Priorität
- Einstellbares Prüfinterval
## Installation 💻
### Voraussetzungen
- Internetverbindung
- 128MB Arbeitsspeicher
- 0,5 - 1 Thread
- [Node.js](https://nodejs.org/) (Version 12 oder höher)
- [Pushover Account](https://pushover.net/) (für Benachrichtigungen)
### Schritte
1. **Klone das Repository:**
```bash
git clone https://github.com/MaximilianGT500/testflight-watcher.git
cd testflight-watcher
```
2. **Installiere die benötigten Pakete:**
```bash
npm install
```
3. **Erstellung der `.env`-Datei:**
Falls noch nicht vorhanden, erstelle die `.env`-Datei, indem Du den Setup-Prozess ausführen:
```bash
node setup.js / npm run setup
```
4. **Starte das Skript:**
```bash
node index.js / npm start
```
## Konfiguration ⚙️
In der `.env`-Datei müssen folgende Variablen konfiguriert werden:
- **PUSHOVER_USER_KEY**: Dein Pushover-Benutzer-Schlüssel.
- **PUSHOVER_APP_TOKEN**: Dein Pushover-App-Token.
- **TESTFLIGHT_URLS**: Eine Liste der TestFlight-URLs, die überwacht werden sollen. Beispiel:
```json
[{ "name": "App 1", "url": "https://testflight.apple.com/join/abcd1234" },{ "name": "App 2", "url": "https://testflight.apple.com/join/xyz5678" }]
```
- **OTP_SECRET**: Ein geheimer Schlüssel für die OTP-Generierung.
- **OTP_VALIDITY**: Die Gültigkeitsdauer des OTP in Sekunden (Standard: 300).
- **USER_AGENT**: Der User-Agent für Anfragen an die TestFlight-URLs.
- **PORT**: Der Port, auf dem der Webserver läuft (Standard: 3000).
- **HTTP_URL**: Die URL des Webservers (Standard: `http://localhost:3000`).
- **PUSHOVER_PRIORITY**: Die Priorität der Benachrichtigungen bei freier Beta. (Standard: 1)
- **CHECK_INTERVAL**: Wie oft soll nach ein freien Platz geprüft werden? (Standard: 30)
### Beispiel `.env`-Datei:
```env
PUSHOVER_USER_KEY=dein_pushover_benutzer_key
PUSHOVER_APP_TOKEN=dein_pushover_app_token
TESTFLIGHT_URLS='[{"name":"App 1", "url":"https://testflight.apple.com/join/abcd1234"}]'
OTP_SECRET=AendereDiesenString
OTP_VALIDITY=300
USER_AGENT=Testflight-Watcher/0.0.1
PORT=3000
HTTP_URL=http://localhost:3000
PUSHOVER_PRIORITY=1
CHECK_INTERVAL=30
```
## Nutzung 🚀
### Überwachung starten
Nachdem das Skript erfolgreich gestartet wurde, überwacht es kontinuierlich die angegebenen TestFlight-URLs und prüft standardmäßig alle 30 Sekunden auf ein neuen Platz.
### Benachrichtigungen
Wenn ein Platz für einen TestFlight-Betatests verfügbar ist, wird automatisch eine Benachrichtigung an den angegebenen Pushover-Benutzer gesendet.
### URLs verwalten
Du kannst TestFlight-URLs über die Konsole verwalten, indem du die `.env`-Datei bearbeitest oder `npm run setup` bzw. `node setup.js` ausführst.
## Setup 📦
Beim ersten Start des Skripts musst Du die Konfiguration einrichten. Falls die `.env`-Datei fehlt oder unvollständig ist, wird automatisch das Setup gestartet, um die fehlenden Werte zu konfigurieren.
## Debugging und Fehlerbehebung ⚠️
- **Fehlende `.env`-Datei**: Wenn die `.env`-Datei fehlt, startet das Skript den Setup-Prozess automatisch.
- **Pushover-Benachrichtigungen**: Überprüfe, ob der Benutzer-Schlüssel und das App-Token korrekt sind, wenn keine Benachrichtigungen gesendet werden.
- **TestFlight-URLs**: Stelle sicher, dass die URLs korrekt sind und auf existierende Betatests verweisen.
## Lizenz 📄
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die [LICENSE](LICENSE)-Datei für Details.
---