From 6ddd660d899d3c9a07d04c9314f83d92126930a7 Mon Sep 17 00:00:00 2001 From: PiEgg Date: Tue, 27 Jul 2021 11:58:24 +0800 Subject: [PATCH] :sparkles: Feature: add gallery db --- src/main/apis/app/system/index.ts | 5 ++--- src/main/apis/app/uploader/apis.ts | 6 +++--- src/main/apis/core/datastore/index.ts | 4 ---- src/main/apis/gui/index.ts | 4 ++-- src/main/events/ipcList.ts | 4 ++-- src/renderer/pages/Gallery.vue | 6 +++++- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/main/apis/app/system/index.ts b/src/main/apis/app/system/index.ts index f70a1cbe..449732e1 100644 --- a/src/main/apis/app/system/index.ts +++ b/src/main/apis/app/system/index.ts @@ -9,7 +9,7 @@ import { } from 'electron' import uploader from 'apis/app/uploader' import getPicBeds from '~/main/utils/getPicBeds' -import db from '~/main/apis/core/datastore' +import db, { GalleryDB } from '~/main/apis/core/datastore' import windowManager from 'apis/app/window/windowManager' import { IWindowList } from 'apis/app/window/constants' import picgo from '@core/picgo' @@ -221,8 +221,7 @@ export function createTray () { setTimeout(() => { notification.show() }, i * 100) - // FIXME: gallery db - db.insert('uploaded', imgs[i]) + await GalleryDB.getInstance().insert(imgs[i]) } handleCopyUrl(pasteText.join('\n')) trayWindow.webContents.send('dragFiles', imgs) diff --git a/src/main/apis/app/uploader/apis.ts b/src/main/apis/app/uploader/apis.ts index 62a63ea2..228d246d 100644 --- a/src/main/apis/app/uploader/apis.ts +++ b/src/main/apis/app/uploader/apis.ts @@ -6,7 +6,7 @@ import windowManager from 'apis/app/window/windowManager' import { IWindowList } from 'apis/app/window/constants' import uploader from '.' import pasteTemplate from '#/utils/pasteTemplate' -import db from '~/main/apis/core/datastore' +import db, { GalleryDB } from '~/main/apis/core/datastore' import { handleCopyUrl } from '~/main/utils/common' import { handleUrlEncode } from '#/utils/common' export const uploadClipboardFiles = async (): Promise => { @@ -23,7 +23,7 @@ export const uploadClipboardFiles = async (): Promise => { icon: img[0].imgUrl }) notification.show() - db.insert('uploaded', img[0]) + await GalleryDB.getInstance().insert(img[0]) // trayWindow just be created in mac/windows, not in linux trayWindow?.webContents?.send('clipboardFiles', []) trayWindow?.webContents?.send('uploadFiles', img) @@ -61,7 +61,7 @@ export const uploadChoosedFiles = async (webContents: WebContents, files: IFileW setTimeout(() => { notification.show() }, i * 100) - db.insert('uploaded', imgs[i]) + await GalleryDB.getInstance().insert(imgs[i]) result.push(handleUrlEncode(imgs[i].imgUrl!)) } handleCopyUrl(pasteText.join('\n')) diff --git a/src/main/apis/core/datastore/index.ts b/src/main/apis/core/datastore/index.ts index ee14ede0..335c2d70 100644 --- a/src/main/apis/core/datastore/index.ts +++ b/src/main/apis/core/datastore/index.ts @@ -27,10 +27,6 @@ class ConfigStore { this.db = Datastore(adapter) this.db._.mixin(LodashId) - if (!this.db.has('uploaded').value()) { - this.db.set('uploaded', []).write() - } - if (!this.db.has('picBed').value()) { this.db.set('picBed', { current: 'smms', // deprecated diff --git a/src/main/apis/gui/index.ts b/src/main/apis/gui/index.ts index 285b0f81..dd59ab58 100644 --- a/src/main/apis/gui/index.ts +++ b/src/main/apis/gui/index.ts @@ -4,7 +4,7 @@ import { Notification, ipcMain } from 'electron' -import db from '~/main/apis/core/datastore' +import db, { GalleryDB } from '~/main/apis/core/datastore' import uploader from 'apis/app/uploader' import pasteTemplate from '#/utils/pasteTemplate' import { handleCopyUrl } from '~/main/utils/common' @@ -88,7 +88,7 @@ class GuiApi implements IGuiApi { setTimeout(() => { notification.show() }, i * 100) - db.insert('uploaded', imgs[i]) + await GalleryDB.getInstance().insert(imgs[i]) } handleCopyUrl(pasteText.join('\n')) webContents.send('uploadFiles', imgs) diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts index f366d0e9..ebee889d 100644 --- a/src/main/events/ipcList.ts +++ b/src/main/events/ipcList.ts @@ -8,7 +8,7 @@ import windowManager from 'apis/app/window/windowManager' import { IWindowList } from 'apis/app/window/constants' import uploader from 'apis/app/uploader' import pasteTemplate from '#/utils/pasteTemplate' -import db from '~/main/apis/core/datastore' +import db, { GalleryDB } from '~/main/apis/core/datastore' import server from '~/main/server' import getPicBeds from '~/main/utils/getPicBeds' import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' @@ -40,7 +40,7 @@ export default { icon: img[0].imgUrl }) notification.show() - db.insert('uploaded', img[0]) + await GalleryDB.getInstance().insert(img[0]) trayWindow.webContents.send('clipboardFiles', []) if (windowManager.has(IWindowList.SETTING_WINDOW)) { windowManager.get(IWindowList.SETTING_WINDOW)!.webContents.send('updateGallery') diff --git a/src/renderer/pages/Gallery.vue b/src/renderer/pages/Gallery.vue index deff3edd..378eb82e 100644 --- a/src/renderer/pages/Gallery.vue +++ b/src/renderer/pages/Gallery.vue @@ -199,10 +199,14 @@ export default class extends Vue { return this.images .filter(item => { let isInChoosedPicBed = true + let isIncludesSearchText = true if (this.choosedPicBed.length > 0) { isInChoosedPicBed = this.choosedPicBed.some(type => type === item.type) } - return item.fileName?.includes(this.searchText) && isInChoosedPicBed + if (this.searchText) { + isIncludesSearchText = item.fileName?.includes(this.searchText) || false + } + return isIncludesSearchText && isInChoosedPicBed }) } else { return this.images