Feature: add gallery db

This commit is contained in:
PiEgg
2021-07-27 11:58:24 +08:00
parent c70c3aff78
commit 6ddd660d89
6 changed files with 14 additions and 15 deletions
+2 -3
View File
@@ -9,7 +9,7 @@ import {
} from 'electron' } from 'electron'
import uploader from 'apis/app/uploader' import uploader from 'apis/app/uploader'
import getPicBeds from '~/main/utils/getPicBeds' 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 windowManager from 'apis/app/window/windowManager'
import { IWindowList } from 'apis/app/window/constants' import { IWindowList } from 'apis/app/window/constants'
import picgo from '@core/picgo' import picgo from '@core/picgo'
@@ -221,8 +221,7 @@ export function createTray () {
setTimeout(() => { setTimeout(() => {
notification.show() notification.show()
}, i * 100) }, i * 100)
// FIXME: gallery db await GalleryDB.getInstance().insert(imgs[i])
db.insert('uploaded', imgs[i])
} }
handleCopyUrl(pasteText.join('\n')) handleCopyUrl(pasteText.join('\n'))
trayWindow.webContents.send('dragFiles', imgs) trayWindow.webContents.send('dragFiles', imgs)
+3 -3
View File
@@ -6,7 +6,7 @@ import windowManager from 'apis/app/window/windowManager'
import { IWindowList } from 'apis/app/window/constants' import { IWindowList } from 'apis/app/window/constants'
import uploader from '.' import uploader from '.'
import pasteTemplate from '#/utils/pasteTemplate' 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 { handleCopyUrl } from '~/main/utils/common'
import { handleUrlEncode } from '#/utils/common' import { handleUrlEncode } from '#/utils/common'
export const uploadClipboardFiles = async (): Promise<string> => { export const uploadClipboardFiles = async (): Promise<string> => {
@@ -23,7 +23,7 @@ export const uploadClipboardFiles = async (): Promise<string> => {
icon: img[0].imgUrl icon: img[0].imgUrl
}) })
notification.show() notification.show()
db.insert('uploaded', img[0]) await GalleryDB.getInstance().insert(img[0])
// trayWindow just be created in mac/windows, not in linux // trayWindow just be created in mac/windows, not in linux
trayWindow?.webContents?.send('clipboardFiles', []) trayWindow?.webContents?.send('clipboardFiles', [])
trayWindow?.webContents?.send('uploadFiles', img) trayWindow?.webContents?.send('uploadFiles', img)
@@ -61,7 +61,7 @@ export const uploadChoosedFiles = async (webContents: WebContents, files: IFileW
setTimeout(() => { setTimeout(() => {
notification.show() notification.show()
}, i * 100) }, i * 100)
db.insert('uploaded', imgs[i]) await GalleryDB.getInstance().insert(imgs[i])
result.push(handleUrlEncode(imgs[i].imgUrl!)) result.push(handleUrlEncode(imgs[i].imgUrl!))
} }
handleCopyUrl(pasteText.join('\n')) handleCopyUrl(pasteText.join('\n'))
-4
View File
@@ -27,10 +27,6 @@ class ConfigStore {
this.db = Datastore(adapter) this.db = Datastore(adapter)
this.db._.mixin(LodashId) this.db._.mixin(LodashId)
if (!this.db.has('uploaded').value()) {
this.db.set('uploaded', []).write()
}
if (!this.db.has('picBed').value()) { if (!this.db.has('picBed').value()) {
this.db.set('picBed', { this.db.set('picBed', {
current: 'smms', // deprecated current: 'smms', // deprecated
+2 -2
View File
@@ -4,7 +4,7 @@ import {
Notification, Notification,
ipcMain ipcMain
} from 'electron' } from 'electron'
import db from '~/main/apis/core/datastore' import db, { GalleryDB } from '~/main/apis/core/datastore'
import uploader from 'apis/app/uploader' import uploader from 'apis/app/uploader'
import pasteTemplate from '#/utils/pasteTemplate' import pasteTemplate from '#/utils/pasteTemplate'
import { handleCopyUrl } from '~/main/utils/common' import { handleCopyUrl } from '~/main/utils/common'
@@ -88,7 +88,7 @@ class GuiApi implements IGuiApi {
setTimeout(() => { setTimeout(() => {
notification.show() notification.show()
}, i * 100) }, i * 100)
db.insert('uploaded', imgs[i]) await GalleryDB.getInstance().insert(imgs[i])
} }
handleCopyUrl(pasteText.join('\n')) handleCopyUrl(pasteText.join('\n'))
webContents.send('uploadFiles', imgs) webContents.send('uploadFiles', imgs)
+2 -2
View File
@@ -8,7 +8,7 @@ import windowManager from 'apis/app/window/windowManager'
import { IWindowList } from 'apis/app/window/constants' import { IWindowList } from 'apis/app/window/constants'
import uploader from 'apis/app/uploader' import uploader from 'apis/app/uploader'
import pasteTemplate from '#/utils/pasteTemplate' 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 server from '~/main/server'
import getPicBeds from '~/main/utils/getPicBeds' import getPicBeds from '~/main/utils/getPicBeds'
import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler' import shortKeyHandler from 'apis/app/shortKey/shortKeyHandler'
@@ -40,7 +40,7 @@ export default {
icon: img[0].imgUrl icon: img[0].imgUrl
}) })
notification.show() notification.show()
db.insert('uploaded', img[0]) await GalleryDB.getInstance().insert(img[0])
trayWindow.webContents.send('clipboardFiles', []) trayWindow.webContents.send('clipboardFiles', [])
if (windowManager.has(IWindowList.SETTING_WINDOW)) { if (windowManager.has(IWindowList.SETTING_WINDOW)) {
windowManager.get(IWindowList.SETTING_WINDOW)!.webContents.send('updateGallery') windowManager.get(IWindowList.SETTING_WINDOW)!.webContents.send('updateGallery')
+5 -1
View File
@@ -199,10 +199,14 @@ export default class extends Vue {
return this.images return this.images
.filter(item => { .filter(item => {
let isInChoosedPicBed = true let isInChoosedPicBed = true
let isIncludesSearchText = true
if (this.choosedPicBed.length > 0) { if (this.choosedPicBed.length > 0) {
isInChoosedPicBed = this.choosedPicBed.some(type => type === item.type) 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 { } else {
return this.images return this.images