VibeDownloader
-YouTube videolarını saniyeler içinde yüksek kaliteli MP4 veya MP3 olarak indirin
-diff --git a/main.js b/main.js index 5269344..68df403 100644 --- a/main.js +++ b/main.js @@ -12,8 +12,7 @@ function createWindow() { height: 700, minWidth: 800, minHeight: 600, - frame: true, // We can use frame: true, but let's make it styled inside the HTML with gorgeous glassmorphism! - title: 'VibeDownloader - Premium YouTube & MP3 Downloader', + frame: false, // Make window frameless webPreferences: { preload: path.join(__dirname, 'preload.js'), contextIsolation: true, @@ -22,6 +21,9 @@ function createWindow() { show: false }); + const { Menu } = require('electron'); + Menu.setApplicationMenu(null); // Hide the default menu bar + mainWindow.loadFile(path.join(__dirname, 'src', 'index.html')); // Open devtools if needed in development @@ -32,6 +34,15 @@ function createWindow() { }); } +// IPC Handlers for custom titlebar controls +ipcMain.on('window-minimize', () => { + if (mainWindow) mainWindow.minimize(); +}); + +ipcMain.on('window-close', () => { + if (mainWindow) mainWindow.close(); +}); + app.whenReady().then(() => { createWindow(); @@ -69,9 +80,9 @@ ipcMain.handle('get-video-info', async (event, url) => { }); // IPC Handler: Download Media -ipcMain.handle('download-media', async (event, { url, format }) => { +ipcMain.handle('download-media', async (event, { url, format, quality }) => { try { - await downloader.downloadMedia(url, format, selectedOutputDir, (percent, status) => { + await downloader.downloadMedia(url, format, quality, selectedOutputDir, (percent, status) => { if (mainWindow) { mainWindow.webContents.send('download-progress', { percent, status }); } diff --git a/preload.js b/preload.js index efe87c6..737c22c 100644 --- a/preload.js +++ b/preload.js @@ -4,8 +4,10 @@ contextBridge.exposeInMainWorld('api', { checkDependencies: () => ipcRenderer.invoke('check-dependencies'), onDependencyStatus: (callback) => ipcRenderer.on('dependency-status', (_, data) => callback(data)), getVideoInfo: (url) => ipcRenderer.invoke('get-video-info', url), - downloadMedia: (url, format) => ipcRenderer.invoke('download-media', { url, format }), + downloadMedia: (url, format, quality) => ipcRenderer.invoke('download-media', { url, format, quality }), onDownloadProgress: (callback) => ipcRenderer.on('download-progress', (_, data) => callback(data)), selectDirectory: () => ipcRenderer.invoke('select-directory'), - getDownloadsFolder: () => ipcRenderer.invoke('get-downloads-folder') + getDownloadsFolder: () => ipcRenderer.invoke('get-downloads-folder'), + minimizeWindow: () => ipcRenderer.send('window-minimize'), + closeWindow: () => ipcRenderer.send('window-close') }); diff --git a/src/index.html b/src/index.html index 2188705..d0fa45e 100644 --- a/src/index.html +++ b/src/index.html @@ -10,6 +10,26 @@
+ + + @@ -32,113 +52,120 @@YouTube videolarını saniyeler içinde yüksek kaliteli MP4 veya MP3 olarak indirin
-