Die sechs Punkte des Commanders vom 02.09.2026 abends und seine Entscheide:
* Restzeit der Kompression aus HandBrakes eigener ETA-Klammer (Formatstring
aus dem Binary 1.11.2 gelesen), KompressionStand.restS.
* Kachel zeigt nach dem Rip nur noch eine Zeile — Balken, Prozent, Ziel in
der Kompressions-Karte und im Verlauf ("nur in der Kompressions-Karte").
* Kopfzeile bleibt beim Scrollen stehen (sticky), Sektionswahl darunter.
* Untertitel-Vorwahl je Extra ("NUR für Extras, IMMER OPTIONAL"): welche
Untertitel-Spur beim Abspielen an ist — weiche Spur, nie eingebrannt;
RipAuftragTitel/RohDatei.untertitelVorwahl, sprachwahl.
* Mehrere Filme je Disc: "anderer Film …" je Titel mit TMDb-Suche;
filme.ts filmGruppen trennt am Rip-Ende in eigene Roh-Ordner, Vorgänge
und Kompressions-Aufträge mit voller Zuordnung (erkennung.zuordnungAus).
* Roh-Ordner und Dateien tragen den Filmnamen (filme.ts rohOrdnerName,
ablage/dateinamen.ts: Akira (1988).mkv, - Fassung n, - Extra nn).
* Hell-Modus: Einstellung design (dunkel/hell/system), data-design auf
<html>, Token --color-tinte statt white/-Alpha-Klassen.
* Vorgangs-Leiste (Commander: "Phase 1–4 plus Komprimierung — zu einem
machen"): gemeinsam/vorgangsleiste.ts + uebersicht/VorgangsLeiste.tsx,
vier Stationen (Rettung als Zwischenstation), Segment-Balken in der
aktiven Station; Kachel, Kompressions-Karte, Verlauf. PHASE-x/4-Texte weg.
* Automatik-Kasten leert sich, sobald ein Rip startet.
Beweise: 446 Tests (neu: filme, dateinamen, vorgangsleiste; erweitert:
auftrag, handbrake, automatik, ablegen), drei Typprüfungen, Klick-Beweis
33 Schritte inkl. Vorwahl, anderer Film, Vorgangs-Leiste, Restzeit,
Hell-Modus (Bilder beweise/klick/01…11).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
45 lines
1.5 KiB
JSON
45 lines
1.5 KiB
JSON
{
|
|
"name": "rippy",
|
|
"productName": "Rippy",
|
|
"version": "5.6.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",
|
|
"klick": "electron-vite build && node bau/klick-smoke.mjs",
|
|
"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",
|
|
"playwright": "^1.62.1",
|
|
"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"
|
|
}
|
|
}
|