library.handlers.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { ipcMain } from 'electron'
  2. import { IpcChannels } from '@shared/ipc-channels'
  3. import * as library from '../services/library.service'
  4. import type { LibraryFilters, WallpaperMeta } from '@shared/types'
  5. export function registerLibraryHandlers(): void {
  6. ipcMain.handle(IpcChannels.LIBRARY_GET_ALL, (_e, filters?: LibraryFilters) => {
  7. return library.getAllWallpapers(filters)
  8. })
  9. ipcMain.handle(IpcChannels.LIBRARY_GET_ONE, (_e, id: string) => {
  10. return library.getWallpaper(id)
  11. })
  12. ipcMain.handle(IpcChannels.LIBRARY_UPDATE, (_e, id: string, patch: Partial<WallpaperMeta>) => {
  13. library.updateWallpaper(id, patch)
  14. return library.getWallpaper(id)
  15. })
  16. ipcMain.handle(IpcChannels.LIBRARY_DELETE, (_e, id: string) => {
  17. library.deleteWallpaper(id)
  18. return { ok: true }
  19. })
  20. ipcMain.handle(IpcChannels.LIBRARY_ADD_TAG, (_e, id: string, tag: string) => {
  21. library.addTag(id, tag)
  22. return library.getWallpaper(id)
  23. })
  24. ipcMain.handle(IpcChannels.LIBRARY_REMOVE_TAG, (_e, id: string, tag: string) => {
  25. library.removeTag(id, tag)
  26. return library.getWallpaper(id)
  27. })
  28. ipcMain.handle(IpcChannels.LIBRARY_GET_TAGS, () => {
  29. return library.getAllTags()
  30. })
  31. ipcMain.handle(IpcChannels.LIBRARY_SEARCH, (_e, query: string) => {
  32. return library.getAllWallpapers({ searchText: query })
  33. })
  34. ipcMain.handle(IpcChannels.LIBRARY_SCAN, () => {
  35. return library.scanLibrary()
  36. })
  37. ipcMain.handle(IpcChannels.LIBRARY_DISTINCT_TAGS, () => {
  38. return library.getDistinctTags()
  39. })
  40. ipcMain.handle(IpcChannels.LIBRARY_RESET_FPS_OVERRIDES, () => {
  41. return library.resetAllFpsOverrides()
  42. })
  43. }