Smart-Gruppierung (smart: true)

Viele Setups legen pro Filehoster einen eigenen Linkcrypter-Ordner an (Mirror). Sind dann z. B. drei Ordner mit dem selben Titel und je einem Hoster offline, macht go-reupper ohne Smart:

  • 3× suchen / vorbereiten
  • 3× hochladen
  • 3× Links ersetzen

Mit smart: true gilt stattdessen (Prepare folgt weiter deinem workmode):

  1. gleicher vorbereiteter Titel → ein Search + ein Prepare-Lauf
  2. Upload einmal pro kanonischem Zielhoster
  3. Link-Replace pro Originalordner nur mit den Links dieses Targets

Smart – einmal Prepare, Upload pro Hoster, Links pro Ordner

workmode Was 1× Prepare bedeutet
normal copy / extract / RAR neu packen
lite MD5 der bestehenden RARs (kein Neu-Packen)
lite-gdrive laden von remote + lite

Beispiel: zwei Offline-Ordner James.Bond… (ddownload + rapidgator) → ein Job smart-…, ein Prepare, Upload RG + DDL, Edit beider FolderIDs.

Mit general.parallel.hoster: 2 (oder höher) laufen die Zielhoster eines Smart-Jobs gleichzeitig. 1 bleibt sequentiell. Zoom-Uploads bleiben unabhängig davon nacheinander.


1) Wann lohnt sich smart?

Situation Empfehlung
Mehrere Offline-Ordner, gleicher Titel, je ein Filehoster smart: true
Jeder Offline-Ordner ist inhaltlich ein eigener Release smart: false
Streamhoster / Video-Pfad bleibt Einzeljob (auch mit smart: true)
Nur MD5, kein Repack workmode: lite plus smart: true

smart ist opt-in und orthogonal zum Prepare-Workmode.


2) Nötige Config-Einstellungen

Datei: config/reupper.config.yml (Kopie von reupper.config.dist.yml).

Pflicht: Prepare + Smart

### Work MODE (Prepare-Pfad)
workmode: 'normal'           # REQUIRED | 'normal', 'lite' or 'lite-gdrive'

### Smart grouping
smart: true                  # OPTIONAL | Mirror-Ordner mit gleichem Titel zusammenfassen

Ohne smart: true findet kein Zusammenfassen statt.

Empfohlen für klassische Mirror-Ordner

linkcrypter:
  service: 'filecrypt'       # oder tolink / hidecx
  apikey: 'DEIN_API_KEY'
  multiHosterMode: false     # 1 Hoster pro Folder → typisches Mirror-Setup
Option Empfohlen Warum
workmode normal / lite / lite-gdrive Prepare-Pfad
smart true aktiviert Gruppierung
linkcrypter.multiHosterMode false pro Offline-Ordner ein Hoster (Mirror)
filehoster.active alle Zielhoster der Mirrors inaktive Hoster werden übersprungen / nicht gruppiert
streamhoster.active leer oder nur bewusst Stream-Items bleiben Einzeljobs

Filehoster aktiv halten

Nur Hoster in filehoster.active werden reuploaded. Aliase desselben Hosters (z. B. ddl.to und ddownload.com) sind unkritisch – Smart dedupliziert den Upload kanonisch.

filehoster:
  active:
    - 'ddl.to'
    - 'ddownload.com'
    - 'rapidgator.net'
    # - 'keep2share.cc'

Zugangsdaten der Services unter filehoster.services.* müssen wie im Normalmodus gesetzt sein.

Optional – Titelangleichung (Group-Key)

Der Group-Key entsteht aus dem vorbereiteten Titel (dieselbe Replace-/Cut-Logik wie im Normal-Flow), danach HTML-Unescape, Trim und Lowercase.

general:
  replace:
    enabled: false           # true nur wenn Offline-Titel gezielt angeglichen werden sollen
    linkcryptfolder:
      bychar:
        - search: ' '
          replace: '.'
  cut:
    enabled: false           # true nur wenn der Such-/Gruppenteil vor einem Trenner abgeschnitten wird
    linkcryptfolder:
      bychar: ' - '
Setting Effekt auf Smart
replace / cut aus Merge nur bei exakt gleichem Offline-Titel (Case/Whitespace werden normalisiert)
replace / cut an Merge, wenn die vorbereiteten Titel gleich sind

Optional – Filter (laufen vor dem Merge)

general:
  ignore:
    enabled: false
    keywords: []
  contains:
    enabled: false
    keywords: []

Ignorierte oder per Contains ausgefilterte Ordner landen nicht in einer Smart-Gruppe (bleiben Einzelitems bzw. werden übersprungen wie im Normalmodus).

Optional – Hoster umleiten

replacehoster:
  enabled: false
  hosters:
    - hoster: 'uploaded.net'
      uploadto: 'ddl.to'

Wenn aktiv: Mapping passiert vor Preflight/Coalesce. Upload und Target-Subset nutzen den kanonischen Zielhoster (uploadto). IsStreamHoster wird nach dem Mapping neu gesetzt.

Optional – Zoom

zoom:
  enabled: false             # true = Upload über Z-O-O-M WebControl

Smart funktioniert mit direktem Upload und mit Zoom. Bei Zoom werden Multi-Hoster-Listen zusammengeführt und Links pro Hoster getrennt.

Unverändert wie bei normal

Diese Blöcke steuern Packen, Suche und Cleanup – Smart nutzt denselben Prepare-Pfad wie normal:

general:
  extractRARs: true          # optional: Quell-RARs vor dem Neu-Packen entpacken
  cleanWorkDir: true
  sort: 'name'               # Sortierung vor Priority und Coalesce
  checkinterval: 600

path:
  scan:
    - '/pfad/zu/deinen/quellen/'
  winrar: 'rar'

archive:
  mode: 'rar'
  partsize: '200m'           # Produktionswert; kleine Werte nur zum Testen

3) Minimal-Checkliste

Zum Start von Smart mindestens prüfen:

  1. smart: true
  2. workmode = gewünschter Prepare-Pfad (normal / lite / lite-gdrive)
  3. linkcrypter.service + gültiger apikey
  4. linkcrypter.multiHosterMode: false (bei klassischen Mirrors)
  5. Alle betroffenen Hoster in filehoster.active + Credentials
  6. path.scan zeigt auf die Quellordner (Titel muss gefunden werden)
  7. Keine ungewollten ignore / contains-Filter
  8. Offline-Titel der Mirrors sind (nach Titel-Prep) gleich

4) Was wird gruppiert?

Bedingung Verhalten
≥2 reine Filehoster-Items, gleicher Group-Key ein Smart-Job
Streamhoster oder gemischt Stream/File Stream bzw. ungeeignete Items bleiben Einzeljobs
Ignore / Contains / inaktiver Hoster nicht in der gültigen Gruppe
stark abweichende bekannte Größen kein Merge + Warnung im Log
Größe 0 / unbekannt blockiert Merge nicht allein
smart: false kein Coalesce, reiner Prepare-Workmode

Stabile Job-ID (für Workdir, Queue, History, Retries):

smart- + shortSHA256(linkcrypterService + NUL + groupKey)

Im Log z. B.:

[smart] coalesced 2 folders into job smart-6cb9a3791f50ef65
  title="…" hosters=[ddownload.com rapidgator.net]

Workdir: files/smart-…/ (nicht die einzelnen FolderIDs).


5) Ablauf im Überblick

Offline-Ordner vom Linkcrypter
  → replacehoster (falls aktiv)
  → Sort + Priority (+ priority-only vor Gruppierung)
  → Preflight (Ignore / Contains / aktive Hoster / Titel-Prep)
  → Coalesce gleicher Group-Keys
  → 1× Search / Copy / Extract / Pack
  → Upload pro kanonischem Hoster
  → Edit pro Target (FolderID) mit Link-Subset
  → Complete / Backup nur wenn alle Target-Edits ok

Sonderfälle

Fall Verhalten
10 Ordner, gleicher Titel, gleicher Hoster 1 Pack, 1 Upload, 10 Edits (gleiche Links)
3 Ordner, gleicher Titel, 3 Hoster 1 Pack, 3 Uploads, 3 Edits
replacehoster A→B, zwei Targets mit A 1 Upload B, 2 Edits mit B-Links
Upload unvollständig Jobfehler, kein Link-Edit
Edit Target 1 ok, Target 2 fail Teilerfolg: Job = error, kein Backup/Complete

6) Teilerfolg und UI

Externe Link-Edits sind nicht atomar:

  • erfolgreiche Targets bleiben updated
  • fehlgeschlagene werden failed
  • der Gesamtjob wird nicht als done gewertet

In der Reupper UI (Queue/History):

  • Badge smart
  • stabile Job-ID
  • Hoster-Badges (Union)
  • Fortschritt z. B. 2/3 aktualisiert
  • aufklappbare Targetliste (FolderID, Link, Status, Fehler)

Suche findet den Job über Titel, Job-ID und Target-FolderID.


7) Hinweise und Risiken

  • Gleicher Titel ist kein Inhaltsbeweis – opt-in + Größen-Guard bei bekannten Größen.
  • Priority-Matching läuft vor der Gruppierung; priority-only filtert vor dem Coalesce.
  • Mit smart: false verhalten sich normal, lite und lite-gdrive wie bisher (kein Coalesce).
  • Stream-Einzeljobs bleiben auch bei smart: true ungruppiert.

Weitere Optionen: Konfiguration von go-reupper.