{"id":22618906,"url":"https://github.com/maximiliangt500/testflight-watcher","last_synced_at":"2025-04-11T01:02:05.371Z","repository":{"id":269094336,"uuid":"903183057","full_name":"MaximilianGT500/testflight-watcher","owner":"MaximilianGT500","description":"Dies ist ein einfacher TestFlight-Watcher, der in regelmäßigen Abständen die Einladungen auf verfügbare Plätze überprüft. Sobald ein Platz frei wird, erfolgt eine Benachrichtigung über Pushover.","archived":false,"fork":false,"pushed_at":"2024-12-20T20:58:40.000Z","size":24,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T16:54:09.682Z","etag":null,"topics":["pushover","testflight","testflight-api","testflight-invite","testflight-link"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaximilianGT500.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-13T23:57:22.000Z","updated_at":"2025-03-01T07:23:42.000Z","dependencies_parsed_at":"2024-12-20T21:41:03.692Z","dependency_job_id":null,"html_url":"https://github.com/MaximilianGT500/testflight-watcher","commit_stats":null,"previous_names":["maximiliangt500/testflight-watcher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximilianGT500%2Ftestflight-watcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximilianGT500%2Ftestflight-watcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximilianGT500%2Ftestflight-watcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximilianGT500%2Ftestflight-watcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaximilianGT500","download_url":"https://codeload.github.com/MaximilianGT500/testflight-watcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248322600,"owners_count":21084336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pushover","testflight","testflight-api","testflight-invite","testflight-link"],"created_at":"2024-12-08T21:11:05.865Z","updated_at":"2025-04-11T01:02:05.353Z","avatar_url":"https://github.com/MaximilianGT500.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"#\" target=\"_blank\"\u003e\u003cimg alt=\"Banner\" src=\"https://pics.re/r/7tv16WJTaE.png?compress=false\"\u003e\u003c/a\u003e\n# TestFlight Watcher 🚀\n\n## Beschreibung 📜\nDer **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.\n\n## Funktionen 🛠️\n- Überwachung von TestFlight-Betas.\n- Senden von Benachrichtigungen bei Verfügbarkeit von Testplätzen.\n- Einfache Verwaltung der zu überwachenden URLs über eine Konfigurationsdatei oder über das Setup-Script.\n- Webserver zum Löschen von bereits angenommenen Beta-Einladungen.\n- Einstellbare Priorität\n- Einstellbares Prüfinterval\n  \n## Installation 💻\n\n### Voraussetzungen\n- Internetverbindung\n- 128MB Arbeitsspeicher\n- 0,5 - 1 Thread\n- [Node.js](https://nodejs.org/) (Version 12 oder höher)\n- [Pushover Account](https://pushover.net/) (für Benachrichtigungen)\n\n### Schritte\n1. **Klone das Repository:**\n   ```bash\n   git clone https://github.com/MaximilianGT500/testflight-watcher.git\n   cd testflight-watcher\n   ```\n\n2. **Installiere die benötigten Pakete:**\n   ```bash\n   npm install\n   ```\n\n3. **Erstellung der `.env`-Datei:**\n   Falls noch nicht vorhanden, erstelle die `.env`-Datei, indem Du den Setup-Prozess ausführen:\n   ```bash\n   node setup.js / npm run setup\n   ```\n\n4. **Starte das Skript:**\n   ```bash\n   node index.js / npm start\n   ```\n\n## Konfiguration ⚙️\n\nIn der `.env`-Datei müssen folgende Variablen konfiguriert werden:\n\n- **PUSHOVER_USER_KEY**: Dein Pushover-Benutzer-Schlüssel.\n- **PUSHOVER_APP_TOKEN**: Dein Pushover-App-Token.\n- **TESTFLIGHT_URLS**: Eine Liste der TestFlight-URLs, die überwacht werden sollen. Beispiel:\n  ```json\n  [{ \"name\": \"App 1\", \"url\": \"https://testflight.apple.com/join/abcd1234\" },{ \"name\": \"App 2\", \"url\": \"https://testflight.apple.com/join/xyz5678\" }]\n  ```\n\n- **OTP_SECRET**: Ein geheimer Schlüssel für die OTP-Generierung.\n- **OTP_VALIDITY**: Die Gültigkeitsdauer des OTP in Sekunden (Standard: 300).\n- **USER_AGENT**: Der User-Agent für Anfragen an die TestFlight-URLs.\n- **PORT**: Der Port, auf dem der Webserver läuft (Standard: 3000).\n- **HTTP_URL**: Die URL des Webservers (Standard: `http://localhost:3000`).\n- **PUSHOVER_PRIORITY**: Die Priorität der Benachrichtigungen bei freier Beta. (Standard: 1)\n- **CHECK_INTERVAL**: Wie oft soll nach ein freien Platz geprüft werden? (Standard: 30)\n  \n### Beispiel `.env`-Datei:\n```env\nPUSHOVER_USER_KEY=dein_pushover_benutzer_key\nPUSHOVER_APP_TOKEN=dein_pushover_app_token\nTESTFLIGHT_URLS='[{\"name\":\"App 1\", \"url\":\"https://testflight.apple.com/join/abcd1234\"}]'\nOTP_SECRET=AendereDiesenString\nOTP_VALIDITY=300\nUSER_AGENT=Testflight-Watcher/0.0.2\nPORT=3000\nHTTP_URL=http://localhost:3000\nPUSHOVER_PRIORITY=1\nCHECK_INTERVAL=30\n```\n\n## Nutzung 🚀\n\n### Überwachung starten\nNachdem das Skript erfolgreich gestartet wurde, überwacht es kontinuierlich die angegebenen TestFlight-URLs und prüft standardmäßig alle 30 Sekunden auf ein neuen Platz.\n\n### Benachrichtigungen\nWenn ein Platz für einen TestFlight-Betatests verfügbar ist, wird automatisch eine Benachrichtigung an den angegebenen Pushover-Benutzer gesendet.\n\n### URLs verwalten\nDu kannst TestFlight-URLs über die Konsole verwalten, indem du die `.env`-Datei bearbeitest oder `npm run setup` bzw. `node setup.js` ausführst.\n\n## Setup 📦\nBeim 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.\n\n## Debugging und Fehlerbehebung ⚠️\n\n- **Fehlende `.env`-Datei**: Wenn die `.env`-Datei fehlt, startet das Skript den Setup-Prozess automatisch.\n- **Pushover-Benachrichtigungen**: Überprüfe, ob der Benutzer-Schlüssel und das App-Token korrekt sind, wenn keine Benachrichtigungen gesendet werden.\n- **TestFlight-URLs**: Stelle sicher, dass die URLs korrekt sind und auf existierende Betatests verweisen.\n\n## Lizenz 📄\nDieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die [LICENSE](LICENSE)-Datei für Details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximiliangt500%2Ftestflight-watcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximiliangt500%2Ftestflight-watcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximiliangt500%2Ftestflight-watcher/lists"}