From ca4725a46e7753107dc0a784c0813b518113ccac Mon Sep 17 00:00:00 2001 From: qier222 Date: Fri, 13 May 2022 18:18:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=A1=E7=AE=97=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/electron/ipcMain.ts | 17 ++++++++++++++++ packages/electron/package.json | 3 ++- packages/shared/IpcChannels.ts | 37 ++++++++++++++++++---------------- pnpm-lock.yaml | 7 +++++++ 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/packages/electron/ipcMain.ts b/packages/electron/ipcMain.ts index 7117f6f..4feb2f8 100644 --- a/packages/electron/ipcMain.ts +++ b/packages/electron/ipcMain.ts @@ -9,6 +9,9 @@ import { TypedElectronStore } from './index' import { APIs } from '../shared/CacheAPIs' import { YPMTray } from './tray' import { Thumbar } from './windowsTaskbar' +import fastFolderSize from 'fast-folder-size' +import path from 'path' +import prettyBytes from 'pretty-bytes' const on = ( channel: T, @@ -121,6 +124,20 @@ function initOtherIpcMain() { cache.set(APIs.CoverColor, { id, color }) }) + /** + * 获取音频缓存文件夹大小 + */ + on(IpcChannels.GetAudioCacheSize, event => { + fastFolderSize( + path.join(app.getPath('userData'), './audio_cache'), + (error, bytes) => { + if (error) throw error + + event.returnValue = prettyBytes(bytes ?? 0) + } + ) + }) + /** * 导出tables到json文件,方便查看table大小(dev环境) */ diff --git a/packages/electron/package.json b/packages/electron/package.json index be5f930..5783576 100644 --- a/packages/electron/package.json +++ b/packages/electron/package.json @@ -26,7 +26,8 @@ "electron-log": "^4.4.6", "electron-store": "^8.0.1", "express": "^4.18.1", - "fast-folder-size": "^1.6.1" + "fast-folder-size": "^1.6.1", + "pretty-bytes": "^6.0.0" }, "devDependencies": { "@electron/universal": "1.2.1", diff --git a/packages/shared/IpcChannels.ts b/packages/shared/IpcChannels.ts index ec12520..8341b92 100644 --- a/packages/shared/IpcChannels.ts +++ b/packages/shared/IpcChannels.ts @@ -3,24 +3,25 @@ import { RepeatMode } from './playerDataTypes' import { Store } from '@/shared/store' export const enum IpcChannels { - ClearAPICache = 'clear-api-cache', - Minimize = 'minimize', - MaximizeOrUnmaximize = 'maximize-or-unmaximize', - Close = 'close', - IsMaximized = 'is-maximized', - GetApiCacheSync = 'get-api-cache-sync', - DevDbExportJson = 'dev-db-export-json', - CacheCoverColor = 'cache-cover-color', - SetTrayTooltip = 'set-tray-tooltip', + ClearAPICache = 'ClearAPICache', + Minimize = 'Minimize', + MaximizeOrUnmaximize = 'MaximizeOrUnmaximize', + Close = 'Close', + IsMaximized = 'IsMaximized', + GetApiCacheSync = 'GetApiCacheSync', + DevDbExportJson = 'DevDbExportJson', + CacheCoverColor = 'CacheCoverColor', + SetTrayTooltip = 'SetTrayTooltip', // 准备三个播放相关channel, 为 mpris 预留接口 - Play = 'play', - Pause = 'pause', - PlayOrPause = 'play-or-pause', - Next = 'next', - Previous = 'previous', - Like = 'like', - Repeat = 'repeat', - SyncSettings = 'sync-settings', + Play = 'Play', + Pause = 'Pause', + PlayOrPause = 'PlayOrPause', + Next = 'Next', + Previous = 'Previous', + Like = 'Like', + Repeat = 'Repeat', + SyncSettings = 'SyncSettings', + GetAudioCacheSize = 'GetAudioCacheSize', } // ipcMain.on params @@ -54,6 +55,7 @@ export interface IpcChannelsParams { mode: RepeatMode } [IpcChannels.SyncSettings]: Store['settings'] + [IpcChannels.GetAudioCacheSize]: void } // ipcRenderer.on params @@ -74,4 +76,5 @@ export interface IpcChannelsReturns { [IpcChannels.Previous]: void [IpcChannels.Like]: void [IpcChannels.Repeat]: RepeatMode + [IpcChannels.GetAudioCacheSize]: void } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34d73dd..712edde 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,6 +54,7 @@ importers: picocolors: ^1.0.0 prettier: '*' prettier-plugin-tailwindcss: ^0.1.10 + pretty-bytes: ^6.0.0 typescript: '*' wait-on: ^6.0.1 dependencies: @@ -69,6 +70,7 @@ importers: express: 4.18.1 fast-folder-size: 1.6.2 NeteaseCloudMusicApi: 4.5.14 + pretty-bytes: 6.0.0 devDependencies: '@electron/universal': 1.2.1 '@types/better-sqlite3': 7.5.0 @@ -6890,6 +6892,11 @@ packages: hasBin: true dev: true + /pretty-bytes/6.0.0: + resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: false + /pretty-format/27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}