mirror of
https://github.com/mifi/lossless-cut.git
synced 2024-11-25 11:43:17 +01:00
parent
4cda6579a7
commit
1715c2bb01
@ -1,2 +1,2 @@
|
|||||||
/dist
|
/dist
|
||||||
/build
|
/vite-dist
|
||||||
|
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,12 +1,5 @@
|
|||||||
node_modules
|
node_modules
|
||||||
.DS_Store
|
.DS_Store
|
||||||
dist
|
|
||||||
build
|
|
||||||
icon-build
|
|
||||||
build-resources
|
|
||||||
doc
|
|
||||||
/ffmpeg
|
|
||||||
/app.log
|
|
||||||
*.provisionprofile
|
*.provisionprofile
|
||||||
|
|
||||||
.pnp.*
|
.pnp.*
|
||||||
@ -16,3 +9,11 @@ doc
|
|||||||
!.yarn/releases
|
!.yarn/releases
|
||||||
!.yarn/sdks
|
!.yarn/sdks
|
||||||
!.yarn/versions
|
!.yarn/versions
|
||||||
|
|
||||||
|
/dist
|
||||||
|
/vite-dist
|
||||||
|
/icon-build
|
||||||
|
/build-resources
|
||||||
|
/doc
|
||||||
|
/ffmpeg
|
||||||
|
/app.log
|
||||||
|
@ -6,5 +6,6 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
<script type="module" src="/src/index.jsx"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
35
package.json
35
package.json
@ -8,16 +8,15 @@
|
|||||||
"homepage": "./",
|
"homepage": "./",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "concurrently -k \"npm run start:frontend\" \"npm run start:electron\"",
|
"start": "concurrently -k \"npm run start:frontend\" \"npm run start:electron\"",
|
||||||
"start:frontend": "cross-env BROWSER=none PORT=3001 DISABLE_ESLINT_PLUGIN=true react-scripts start",
|
"start:frontend": "cross-env vite --port 3001",
|
||||||
"start:electron": "wait-on http://localhost:3001 && electron .",
|
"start:electron": "wait-on tcp:3001 && electron .",
|
||||||
"icon-gen": "mkdirp icon-build build-resources/appx && node script/icon-gen.mjs",
|
"icon-gen": "mkdirp icon-build build-resources/appx && node script/icon-gen.mjs",
|
||||||
"download-ffmpeg-darwin-x64": "mkdirp ffmpeg/darwin-x64 && cd ffmpeg/darwin-x64 && wget https://github.com/mifi/ffmpeg-build-script/releases/download/5.1.2/ffmpeg -O ffmpeg && wget https://github.com/mifi/ffmpeg-build-script/releases/download/5.1.2/ffprobe -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
"download-ffmpeg-darwin-x64": "mkdirp ffmpeg/darwin-x64 && cd ffmpeg/darwin-x64 && wget https://github.com/mifi/ffmpeg-build-script/releases/download/5.1.2/ffmpeg -O ffmpeg && wget https://github.com/mifi/ffmpeg-build-script/releases/download/5.1.2/ffprobe -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
||||||
"download-ffmpeg-darwin-arm64": "mkdirp ffmpeg/darwin-arm64 && cd ffmpeg/darwin-arm64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/ffmpeg-darwin-arm64-v5.1.2 -O ffmpeg && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/ffprobe-darwin-arm64-v5.1.2 -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
"download-ffmpeg-darwin-arm64": "mkdirp ffmpeg/darwin-arm64 && cd ffmpeg/darwin-arm64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/ffmpeg-darwin-arm64-v5.1.2 -O ffmpeg && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/ffprobe-darwin-arm64-v5.1.2 -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
||||||
"download-ffmpeg-linux-x64": "mkdirp ffmpeg/linux-x64 && cd ffmpeg/linux-x64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/linux-x64-v5.1.1.tar.xz -O ffmpeg-ffprobe.xz && tar -xv --strip-components=1 -f ffmpeg-ffprobe.xz ffmpeg-5.1.1-amd64-static/ffmpeg ffmpeg-5.1.1-amd64-static/ffprobe",
|
"download-ffmpeg-linux-x64": "mkdirp ffmpeg/linux-x64 && cd ffmpeg/linux-x64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/linux-x64-v5.1.1.tar.xz -O ffmpeg-ffprobe.xz && tar -xv --strip-components=1 -f ffmpeg-ffprobe.xz ffmpeg-5.1.1-amd64-static/ffmpeg ffmpeg-5.1.1-amd64-static/ffprobe",
|
||||||
"download-ffmpeg-win32-x64": "mkdirp ffmpeg/win32-x64 && cd ffmpeg/win32-x64 && npx download-cli https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/win32-x64-v5.1.2.7z --out . --filename ffmpeg-ffprobe.7z && 7z x ffmpeg-ffprobe.7z && npx shx mv ffmpeg-5.1.2-essentials_build/bin/ffmpeg.exe ./ && npx shx mv ffmpeg-5.1.2-essentials_build/bin/ffprobe.exe ./",
|
"download-ffmpeg-win32-x64": "mkdirp ffmpeg/win32-x64 && cd ffmpeg/win32-x64 && npx download-cli https://github.com/mifi/ffmpeg-builds/releases/download/5.1.2/win32-x64-v5.1.2.7z --out . --filename ffmpeg-ffprobe.7z && 7z x ffmpeg-ffprobe.7z && npx shx mv ffmpeg-5.1.2-essentials_build/bin/ffmpeg.exe ./ && npx shx mv ffmpeg-5.1.2-essentials_build/bin/ffprobe.exe ./",
|
||||||
"build": "yarn icon-gen && react-scripts build",
|
"build": "yarn icon-gen && vite build --outDir vite-dist",
|
||||||
"test": "react-scripts test",
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
||||||
"eject": "react-scripts eject",
|
|
||||||
"lint": "eslint --ext .jsx --ext .js . --ext .mjs",
|
"lint": "eslint --ext .jsx --ext .js . --ext .mjs",
|
||||||
"pack-mac": "electron-builder --mac -m dmg",
|
"pack-mac": "electron-builder --mac -m dmg",
|
||||||
"prepack-mac": "yarn build",
|
"prepack-mac": "yarn build",
|
||||||
@ -45,6 +44,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.20",
|
"@types/jest": "^26.0.20",
|
||||||
"@types/sortablejs": "^1.15.0",
|
"@types/sortablejs": "^1.15.0",
|
||||||
|
"@vitejs/plugin-react": "^3.1.0",
|
||||||
"color": "^3.1.0",
|
"color": "^3.1.0",
|
||||||
"concurrently": "^6.0.0",
|
"concurrently": "^6.0.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
@ -65,11 +65,12 @@
|
|||||||
"framer-motion": "^9.0.3",
|
"framer-motion": "^9.0.3",
|
||||||
"i18next-scanner": "^4.1.0",
|
"i18next-scanner": "^4.1.0",
|
||||||
"icon-gen": "^3.0.0",
|
"icon-gen": "^3.0.0",
|
||||||
|
"jest": "^29.4.3",
|
||||||
"ky": "^0.33.1",
|
"ky": "^0.33.1",
|
||||||
"mkdirp": "^1.0.3",
|
"mkdirp": "^1.0.3",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"mousetrap": "^1.6.5",
|
"mousetrap": "^1.6.5",
|
||||||
"p-map": "^4.0.0",
|
"p-map": "^5.5.0",
|
||||||
"patch-package": "^6.2.1",
|
"patch-package": "^6.2.1",
|
||||||
"pify": "^5.0.0",
|
"pify": "^5.0.0",
|
||||||
"pretty-bytes": "^6.0.0",
|
"pretty-bytes": "^6.0.0",
|
||||||
@ -78,7 +79,6 @@
|
|||||||
"react-i18next": "^11.3.3",
|
"react-i18next": "^11.3.3",
|
||||||
"react-icons": "^4.1.0",
|
"react-icons": "^4.1.0",
|
||||||
"react-lottie-player": "^1.5.0",
|
"react-lottie-player": "^1.5.0",
|
||||||
"react-scripts": "^5.0.1",
|
|
||||||
"react-sortablejs": "^6.1.4",
|
"react-sortablejs": "^6.1.4",
|
||||||
"react-syntax-highlighter": "^15.4.3",
|
"react-syntax-highlighter": "^15.4.3",
|
||||||
"react-use": "^17.4.0",
|
"react-use": "^17.4.0",
|
||||||
@ -91,7 +91,8 @@
|
|||||||
"use-debounce": "^5.1.0",
|
"use-debounce": "^5.1.0",
|
||||||
"use-trace-update": "^1.3.0",
|
"use-trace-update": "^1.3.0",
|
||||||
"uuid": "^8.3.2",
|
"uuid": "^8.3.2",
|
||||||
"wait-on": "^5.3.0"
|
"vite": "^4.1.1",
|
||||||
|
"wait-on": "^7.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@electron/remote": "^2.0.9",
|
"@electron/remote": "^2.0.9",
|
||||||
@ -119,20 +120,26 @@
|
|||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"extends": "react-app"
|
"extends": "react-app"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"jest": {
|
||||||
"production": [
|
"extensionsToTreatAsEsm": [
|
||||||
"electron 17.0"
|
".js",
|
||||||
|
".mjs"
|
||||||
],
|
],
|
||||||
"development": [
|
"testEnvironment": "node",
|
||||||
"electron 17.0"
|
"testMatch": [
|
||||||
|
"**/__tests__/**/*.?([mc])[jt]s?(x)",
|
||||||
|
"**/?(*.)+(spec|test).?([mc])[jt]s?(x)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"directories": {
|
"directories": {
|
||||||
"buildResources": "build-resources"
|
"buildResources": "build-resources"
|
||||||
},
|
},
|
||||||
|
"extraMetadata": {
|
||||||
|
"main": "vite-dist/electron.js"
|
||||||
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"build/**/*"
|
"vite-dist/**/*"
|
||||||
],
|
],
|
||||||
"asar": {
|
"asar": {
|
||||||
"smartUnpack": false
|
"smartUnpack": false
|
||||||
|
@ -87,7 +87,7 @@ function createWindow() {
|
|||||||
|
|
||||||
if (isDev) mainWindow.loadURL('http://localhost:3001');
|
if (isDev) mainWindow.loadURL('http://localhost:3001');
|
||||||
// Need to useloadFile for special characters https://github.com/mifi/lossless-cut/issues/40
|
// Need to useloadFile for special characters https://github.com/mifi/lossless-cut/issues/40
|
||||||
else mainWindow.loadFile('build/index.html');
|
else mainWindow.loadFile('vite-dist/index.html');
|
||||||
|
|
||||||
// Open the DevTools.
|
// Open the DevTools.
|
||||||
// mainWindow.webContents.openDevTools()
|
// mainWindow.webContents.openDevTools()
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,35 +1,35 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`converts segments to chapters with gaps 1`] = `
|
exports[`converts segments to chapters with gaps 1`] = `
|
||||||
Array [
|
[
|
||||||
Object {
|
{
|
||||||
"end": 104.612,
|
"end": 104.612,
|
||||||
"start": 0,
|
"start": 0,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 189.053,
|
"end": 189.053,
|
||||||
"name": "label 1",
|
"name": "label 1",
|
||||||
"start": 104.612,
|
"start": 104.612,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 300.448,
|
"end": 300.448,
|
||||||
"start": 189.053,
|
"start": 189.053,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 476.194,
|
"end": 476.194,
|
||||||
"name": "label 2",
|
"name": "label 2",
|
||||||
"start": 300.448,
|
"start": 300.448,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 567.075,
|
"end": 567.075,
|
||||||
"start": 476.194,
|
"start": 476.194,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 704.264,
|
"end": 704.264,
|
||||||
"name": "label 3",
|
"name": "label 3",
|
||||||
"start": 567.075,
|
"start": 567.075,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 855.455,
|
"end": 855.455,
|
||||||
"name": "label 4",
|
"name": "label 4",
|
||||||
"start": 704.264,
|
"start": 704.264,
|
||||||
@ -38,13 +38,13 @@ Array [
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`converts segments to chapters with no gaps 1`] = `
|
exports[`converts segments to chapters with no gaps 1`] = `
|
||||||
Array [
|
[
|
||||||
Object {
|
{
|
||||||
"end": 2,
|
"end": 2,
|
||||||
"name": "label 1",
|
"name": "label 1",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
},
|
},
|
||||||
Object {
|
{
|
||||||
"end": 3,
|
"end": 3,
|
||||||
"name": "label 2",
|
"name": "label 2",
|
||||||
"start": 2,
|
"start": 2,
|
||||||
@ -53,8 +53,8 @@ Array [
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`converts segments to chapters with single long segment 1`] = `
|
exports[`converts segments to chapters with single long segment 1`] = `
|
||||||
Array [
|
[
|
||||||
Object {
|
{
|
||||||
"end": 1,
|
"end": 1,
|
||||||
"name": "label 1",
|
"name": "label 1",
|
||||||
"start": 0,
|
"start": 0,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { memo } from 'react';
|
import React, { memo } from 'react';
|
||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import Lottie from 'react-lottie-player';
|
import Lottie from 'react-lottie-player/dist/LottiePlayerLight';
|
||||||
import { Button } from 'evergreen-ui';
|
import { Button } from 'evergreen-ui';
|
||||||
import { Trans } from 'react-i18next';
|
import { Trans } from 'react-i18next';
|
||||||
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
import fs from 'fs/promises';
|
import fs from 'fs/promises';
|
||||||
import { join } from 'path';
|
import { join, dirname } from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
import { parseYouTube, formatYouTube, parseMplayerEdl, parseXmeml, parseFcpXml, parseCsv, getTimeFromFrameNum, formatCsvFrames, getFrameCountRaw, parsePbf } from './edlFormats';
|
import { parseYouTube, formatYouTube, parseMplayerEdl, parseXmeml, parseFcpXml, parseCsv, getTimeFromFrameNum, formatCsvFrames, getFrameCountRaw, parsePbf } from './edlFormats';
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
|
||||||
const readFixture = async (name, encoding = 'utf-8') => fs.readFile(join(__dirname, 'fixtures', name), encoding);
|
const readFixture = async (name, encoding = 'utf-8') => fs.readFile(join(__dirname, 'fixtures', name), encoding);
|
||||||
|
|
||||||
const expectYouTube1 = [
|
const expectYouTube1 = [
|
||||||
|
@ -120,7 +120,7 @@ var PAGE_HEIGHT = 800;
|
|||||||
* Firefox v4/Win7 | undefined | 3
|
* Firefox v4/Win7 | undefined | 3
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function normalizeWheel(/*object*/ event) /*object*/ {
|
export default function normalizeWheel(/*object*/ event) /*object*/ {
|
||||||
var sX = 0, sY = 0, // spinX, spinY
|
var sX = 0, sY = 0, // spinX, spinY
|
||||||
pX = 0, pY = 0; // pixelX, pixelY
|
pX = 0, pY = 0; // pixelX, pixelY
|
||||||
|
|
||||||
@ -161,5 +161,3 @@ function normalizeWheel(/*object*/ event) /*object*/ {
|
|||||||
pixelX : pX,
|
pixelX : pX,
|
||||||
pixelY : pY };
|
pixelY : pY };
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = normalizeWheel;
|
|
||||||
|
@ -2,6 +2,8 @@ import React, { Suspense } from 'react';
|
|||||||
import { createRoot } from 'react-dom/client';
|
import { createRoot } from 'react-dom/client';
|
||||||
import { MotionConfig } from 'framer-motion';
|
import { MotionConfig } from 'framer-motion';
|
||||||
|
|
||||||
|
import 'sweetalert2/dist/sweetalert2.css';
|
||||||
|
|
||||||
import App from './App';
|
import App from './App';
|
||||||
import ErrorBoundary from './ErrorBoundary';
|
import ErrorBoundary from './ErrorBoundary';
|
||||||
import './i18n';
|
import './i18n';
|
||||||
|
12
vite.config.js
Normal file
12
vite.config.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { defineConfig } from 'vite';
|
||||||
|
import react from '@vitejs/plugin-react';
|
||||||
|
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [react()],
|
||||||
|
base: '',
|
||||||
|
build: {
|
||||||
|
chunkSizeWarningLimit: 3e6,
|
||||||
|
},
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user