diff --git a/.DS_Store b/.DS_Store index 5008ddf..48b7fb3 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index cacb867..61aac8d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ **/dist **/app/launcher/dist/dev_mode_launcher/_internal releases +temp.txt # Compiled Scripts **/utils/reload/*.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..d5abf09 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Github Video Compressor + +[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) + +## Description + +A inline video compressor for Github PR. +Never see the 100MB upload video file limit on Github PRs again. + +## Table of Contents + +- [Installation](#installation) +- [Contributing](#contributing) +- [License](#license) + +## App + Extension Installation + +TBD + +## Contributing + +TBD + +## License + +This project is licensed under the [MIT License](LICENSE). diff --git a/app/electron-builder.js b/app/electron-builder.js index df52348..04ccc2e 100644 --- a/app/electron-builder.js +++ b/app/electron-builder.js @@ -25,7 +25,7 @@ module.exports = { }, dmg: { - icon: true, + icon: false, }, linux: { diff --git a/app/launcher/dev_mode_launcher.py b/app/launcher/dev_mode_launcher.py index 57e016e..b5d1719 100755 --- a/app/launcher/dev_mode_launcher.py +++ b/app/launcher/dev_mode_launcher.py @@ -148,7 +148,7 @@ def start_subprocess(ws): global proc current_directory = os.path.dirname(os.path.realpath(__file__)) project_root = find_project_root(current_directory, '.github') - electron_path = os.path.join(project_root, "node_modules/electron/dist/Electron.app/Contents/MacOS/Electron") + electron_path = os.path.join(project_root, "app/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron") main_script_path = os.path.join(project_root, "app/node_modules/.dev/main/index.js") # Set environment variables for the subprocess diff --git a/app/launcher/dist/dev_mode_launcher/dev_mode_launcher b/app/launcher/dist/dev_mode_launcher/dev_mode_launcher index d15a7db..c028138 100755 Binary files a/app/launcher/dist/dev_mode_launcher/dev_mode_launcher and b/app/launcher/dist/dev_mode_launcher/dev_mode_launcher differ diff --git a/app/src/main/dev_websockets.ts b/app/src/main/dev_websockets.ts index 54a9a61..c89363d 100644 --- a/app/src/main/dev_websockets.ts +++ b/app/src/main/dev_websockets.ts @@ -1,6 +1,6 @@ import WebSocket from 'ws' -const debugWebSocket = new WebSocket('ws://localhost:3333') +let debugWebSocket: WebSocket | null = null function generateRandomClientId() { const colors = ['red', 'blue', 'green', 'yellow', 'pink', 'black', 'white', 'purple', 'orange', 'brown'] @@ -9,10 +9,23 @@ function generateRandomClientId() { const animal = animals[Math.floor(Math.random() * animals.length)] return `${color} ${animal}` } - const clientId = generateRandomClientId() +export const initWebSocketServer = () => { + debugWebSocket = new WebSocket('ws://localhost:3333') + + debugWebSocket.on('open', function open() { + sendDebugMessage('info', 'Connected to debug server') + }) + + debugWebSocket.on('close', function close() { + sendDebugMessage('info', 'Disconnected from debug server') + }) +} + export function sendDebugMessage(type: string, data: string | Record | null) { + if (!debugWebSocket) return + const message = { type: type, client_id: clientId, @@ -29,11 +42,3 @@ export function sendDebugMessage(type: string, data: string | Record { await app.whenReady() + const isDev = process.argv.includes('--development') + try { const nativeMessagingHost = new NativeMessagingHost() + if (isDev) { + initWebSocketServer() + } const { server } = startHttpFileServer(app, port) nativeMessagingHost.addListener(message => { @@ -49,6 +54,5 @@ makeAppWithSingleInstanceLock(async () => { // @ts-ignore sendDebugMessage('error', e?.message || 'unknown') app.quit() - console.error('app error:', e) } }) diff --git a/app/src/shared/utils/httpFileServer.ts b/app/src/shared/utils/httpFileServer.ts index 0475887..0180da3 100644 --- a/app/src/shared/utils/httpFileServer.ts +++ b/app/src/shared/utils/httpFileServer.ts @@ -116,7 +116,6 @@ export const startHttpFileServer = (electronApp: Electron.App, port: number = 77 sendDebugMessage('debug - name', req.file.originalname) sendDebugMessage('debug - path', req.file.path) - sendDebugMessage('debug - upload input path', fs.readdirSync('uploads').join(', ')) // @ts-expect-error -- test token sendDebugMessage('debug - token', req?.token) sendDebugMessage('debug - file', req.file) diff --git a/extension/src/pages/content/index.ts b/extension/src/pages/content/index.ts index 99dea85..8060c07 100644 --- a/extension/src/pages/content/index.ts +++ b/extension/src/pages/content/index.ts @@ -256,6 +256,10 @@ const fileSizeToMB = fileSize => { // Iterate over the FileList for (let i = 0; i < files.length; i++) { const file = files.item(i) + + // Ignore files that are small + if (file.size < TRIGGER_SIZE) return + if (!file) { throw new Error('file not found') } @@ -269,28 +273,26 @@ const fileSizeToMB = fileSize => { e.stopPropagation() e.preventDefault() - if (file.size > TRIGGER_SIZE) { - displayLoadingWithSpinner(textAreaElement, `Compressing [${file.name}]`) - execCommand('compress_file', { - file, + displayLoadingWithSpinner(textAreaElement, `Compressing [${file.name}]`) + execCommand('compress_file', { + file, + }) + .then(({ file: compressedFile }) => { + console.log('compressedFile', compressedFile) + console.log('finish compressed video') + if (compressedFile) { + updateLoadingText( + textAreaElement, + `Compressing [${file.name}]`, + `Uploading [${compressedFile.name}]`, + ) + + uploadFile(textAreaElement, compressedFile, compressedFile.name) + } + }) + .catch(err => { + console.log('err', err) }) - .then(({ file: compressedFile }) => { - console.log('compressedFile', compressedFile) - console.log('finish compressed video') - if (compressedFile) { - updateLoadingText( - textAreaElement, - `Compressing [${file.name}]`, - `Uploading [${compressedFile.name}]`, - ) - - uploadFile(textAreaElement, compressedFile, compressedFile.name) - } - }) - .catch(err => { - console.log('err', err) - }) - } } } }