Ampel / ampel (push) Successful in 1m56s
Commander (01.09.2026): "Mach das gerne noch mit den Serien." und "Fuer FILME sollte so eine auswahl auch gelten z.B. Nur hauptfeature oder hauptfeature + extras usw. Rippy muss das auch selbst zusammenbasteln." Wieder lagen die Teile fertig herum und waren nur nicht verbunden: serienOrdner(), matcheEpisoden(), episodenUmbenennen() (struktur.ts) und tvStaffel() (tmdb.ts) sind gebaut UND getestet — aufgerufen hat sie niemand. Folgen landeten deshalb unter Filme/, und Jellyfin sah lauter Einzelfilme statt einer Staffel. Neu: jeder Titel im Auftrag traegt eine ROLLE (gemeinsam/nachrichten.ts, EINE Definition fuer Kern und Fenster): hauptfilm -> Filme/<Titel> (Jahr)/<Titel> (Jahr).mkv extra -> Filme/<Titel> (Jahr)/extras/... folge -> Serien/<Titel>/Season NN/... S01E02.mkv * Rippy schlaegt die Rolle vor (Serie -> Folge, Film -> Hauptfilm, Rest -> Extra), im Dialog ist sie je Titel aenderbar. * Die Zuordnung Datei->Rolle ist EXAKT, nicht aus Dateinamen geraten: Je makemkvcon-Lauf kommt genau ein Titel dazu, und genau der bekommt die Rolle des Auftragseintrags. * Extras liegen im Unterordner "extras" neben dem Film — die Konvention, die Jellyfin, Emby und Kodi als Zugaben lesen. Der Ordner entsteht nur, wenn es wirklich Extras gibt. * Neuer Schnellwahl-Knopf "Hauptinhalt + Extras": alles Sehenswerte, aber weder Sammeltitel noch Logos/Alterskennzeichen. Episoden-Nummern: Die Laufzeit jedes gewaehlten Titels reist im Auftrag mit (RipAuftragTitel.dauerS), die Staffel-Laufzeiten kommen ueber einen injizierten Rueckruf von TMDb (tvStaffel). matcheEpisoden() benennt NUR bei EINDEUTIGER Zuordnung um. Sonst behalten die Dateien ihre Namen, und Rippy SAGT warum — entweder "keine Staffel-Laufzeiten von TMDb" oder "nicht eindeutig zuzuordnen". Lieber gar nicht als falsch; das war ARMs offene Wunde #395. Die Staffel-Nummer kommt aus dem Disc-Titel (discZusatzAbtrennen, seit 5.1.1) — sonst 1. 257 Tests gruen (vorher 254), Typpruefung sauber. Version 5.3.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.4 KiB
JSON
43 lines
1.4 KiB
JSON
{
|
|
"name": "rippy",
|
|
"productName": "Rippy",
|
|
"version": "5.3.0",
|
|
"description": "Rippy v5 — Disc-Ripping als eigenständiges Windows-Programm (KONZEPT-WINDOWS.md)",
|
|
"main": "out/haupt/index.js",
|
|
"author": "KrBrZ",
|
|
"license": "UNLICENSED",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "electron-vite dev",
|
|
"typecheck": "tsc --noEmit -p tsconfig.node.json && tsc --noEmit -p tsconfig.bruecke.json && tsc --noEmit -p tsconfig.web.json",
|
|
"build": "npm run typecheck && electron-vite build",
|
|
"test": "vitest run",
|
|
"smoke": "electron-vite build && electron . --smoke",
|
|
"paket": "npm run build && electron-builder --win --config electron-builder.yml",
|
|
"werkzeug:electron": "node node_modules/electron/install.js"
|
|
},
|
|
"dependencies": {
|
|
"electron-updater": "^6.8.9",
|
|
"koffi": "^3.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"@fontsource-variable/bricolage-grotesque": "^5.3.0",
|
|
"@fontsource/instrument-sans": "^5.3.0",
|
|
"@fontsource/jetbrains-mono": "^5.3.0",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@types/node": "^24.0.0",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.5",
|
|
"@vitejs/plugin-react": "^5.2.0",
|
|
"electron": "44.0.0",
|
|
"electron-builder": "^26.15.3",
|
|
"electron-vite": "^5.0.0",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"tailwindcss": "^4.3.3",
|
|
"typescript": "5.9.3",
|
|
"vite": "^7.3.6",
|
|
"vitest": "^4.1.11"
|
|
}
|
|
}
|