Kapitel 13/Tutorial.md aktualisiert
This commit is contained in:
@@ -373,67 +373,56 @@ Im Ergebnis findest du im Feld `data[0].id` deine **User-ID** (z. B. `123456789`
|
|||||||
{"file_exists":true,"non_empty":false,"vods":[]}
|
{"file_exists":true,"non_empty":false,"vods":[]}
|
||||||
{"file_exists":true,"non_empty":true,"vods":["123456789","987654321"]}
|
{"file_exists":true,"non_empty":true,"vods":["123456789","987654321"]}
|
||||||
```
|
```
|
||||||
|
5. Set Node – Felder übernehmen
|
||||||
|
|
||||||
5. **Set Node – Felder übernehmen**
|
Direkt nach dem SSH Node einen Edit Fields (Set) Node einfügen.
|
||||||
Direkt nach dem SSH Node fügen wir einen **Edit Fields (Set)** Node ein.
|
Damit parsen wir das JSON aus stdout in echte Felder.
|
||||||
Damit parsen wir das JSON aus `stdout` in echte Felder, die wir später leicht in IF- oder anderen Nodes verwenden können.
|
|
||||||
|
|
||||||
**Felder (Expressions):**
|
Felder (Expressions):
|
||||||
|
|
||||||
* `file_exists` → `={{ JSON.parse($json.stdout).file_exists }}`
|
file_exists → ={{ JSON.parse($json.stdout).file_exists }}
|
||||||
* `non_empty` → `={{ JSON.parse($json.stdout).non_empty }}`
|
|
||||||
* `vods` → `={{ JSON.parse($json.stdout).vods }}`
|
|
||||||
|
|
||||||
```md
|
non_empty → ={{ JSON.parse($json.stdout).non_empty }}
|
||||||
## Schritt 3: Workflow bauen (n8n-Weboberfläche)
|
|
||||||
|
|
||||||
1. **Cron-Trigger:** alle 10 Minuten
|
vods → ={{ JSON.parse($json.stdout).vods }}
|
||||||
2. **HTTP Request (Get Videos):**
|
|
||||||
```
|
|
||||||
|
|
||||||
[https://api.twitch.tv/helix/videos?user\_id=](https://api.twitch.tv/helix/videos?user_id=)\<DEINE\_TWITCH\_USER\_ID>\&type=archive\&first=1
|
6. State ermitteln (Set-Node – EIN Feld)
|
||||||
|
|
||||||
### 6. State ermitteln (Set-Node – EIN Feld)
|
Wir bewerten nur den Dateistatus. vodId aus Twitch wird erst später benötigt, wenn die Datei existiert und nicht leer ist.
|
||||||
|
|
||||||
Wir bewerten **nur den Dateistatus**. `vodId` aus Twitch wird erst später benötigt, wenn die Datei existiert **und** nicht leer ist.
|
Feld: state
|
||||||
|
Expression:
|
||||||
**Feld:** `state`
|
```json
|
||||||
**Expression:**
|
|
||||||
|
|
||||||
```js
|
|
||||||
{{ $json.file_exists === false
|
{{ $json.file_exists === false
|
||||||
? 'CREATE_AND_DOWNLOAD'
|
? 'CREATE_AND_DOWNLOAD'
|
||||||
: ($json.non_empty === false
|
: ($json.non_empty === false
|
||||||
? 'APPEND_AND_DOWNLOAD'
|
? 'APPEND_AND_DOWNLOAD'
|
||||||
: 'NEED_CHECK') }}
|
: 'NEED_CHECK') }}
|
||||||
```
|
```
|
||||||
|
7. Switch-Node – drei klare Wege
|
||||||
|
|
||||||
---
|
Switch → Property Name: ={{ $json.state }}
|
||||||
|
|
||||||
### 7. Switch-Node – drei klare Wege
|
Cases:
|
||||||
|
|
||||||
**Switch → Property Name:** `={{ $json.state }}`
|
CREATE_AND_DOWNLOAD → Datei anlegen und VOD sofort downloaden.
|
||||||
|
|
||||||
**Cases:**
|
APPEND_AND_DOWNLOAD → Datei ist leer → VOD-ID direkt eintragen und downloaden.
|
||||||
|
|
||||||
* **CREATE\_AND\_DOWNLOAD** → Datei anlegen **und** VOD sofort downloaden.
|
NEED_CHECK → Datei existiert und ist nicht leer → hier prüfen, ob die aktuelle VOD-ID schon enthalten ist.
|
||||||
* **APPEND\_AND\_DOWNLOAD** → Datei ist leer → VOD-ID direkt eintragen und downloaden.
|
|
||||||
* **NEED\_CHECK** → Datei existiert und ist nicht leer → hier prüfen, ob die aktuelle VOD-ID schon enthalten ist.
|
|
||||||
|
|
||||||
---
|
Branch NEED_CHECK
|
||||||
|
|
||||||
### Branch `NEED_CHECK`
|
Set (kurz)
|
||||||
|
|
||||||
1. **Set (kurz)**
|
currentVod → ={{ $json.vodId ?? $json.data[0].id }}
|
||||||
|
|
||||||
* `currentVod` → `={{ $json.vodId ?? $json.data[0].id }}`
|
contains_vod → ={{ Array.isArray($json.vods) && $json.vods.includes($json.currentVod) }}
|
||||||
* `contains_vod` → `={{ Array.isArray($json.vods) && $json.vods.includes($json.currentVod) }}`
|
|
||||||
|
|
||||||
2. **IF Node (einmalig in diesem Branch)**
|
IF Node (einmalig in diesem Branch)
|
||||||
|
|
||||||
* **Bedingung:** `={{ $json.contains_vod === true }}`
|
Bedingung: ={{ $json.contains_vod === true }}
|
||||||
|
|
||||||
* **True:** Pfad beenden (VOD bereits verarbeitet)
|
|
||||||
* **False:** Download & Analyse starten, danach ID anhängen
|
|
||||||
|
|
||||||
|
True: Pfad beenden (VOD bereits verarbeitet)
|
||||||
|
|
||||||
|
False: Download & Analyse starten, danach ID anhängen
|
||||||
Reference in New Issue
Block a user