diff --git a/package.json b/package.json index 838e457..8ae6d2d 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "bootstrap-icons": "^1.8.3", "bootstrap-vue": "^2.22.0", "cheerio": "^1.0.0-rc.12", + "copy-paste": "^1.3.0", "discord-rpc": "^4.0.1", "jquery": "^3.6.0", "localforage": "^1.10.0", diff --git a/src/main/BrowserWinHandler.js b/src/main/BrowserWinHandler.js index 4d23eb5..2a01ff2 100644 --- a/src/main/BrowserWinHandler.js +++ b/src/main/BrowserWinHandler.js @@ -44,6 +44,8 @@ export default class BrowserWinHandler { webSecurity: false, // disable on dev to allow loading local resources nodeIntegration: true, // allow loading modules via the require () function contextIsolation: false, // https://github.com/electron/electron/issues/18037#issuecomment-806320028 + enableRemoteModule: true, + enableremotemodule: true } } ) diff --git a/src/main/settings.js b/src/main/settings.js index 2ba3ff8..19ccae2 100644 --- a/src/main/settings.js +++ b/src/main/settings.js @@ -1,8 +1,10 @@ import getAppDataPath from 'appdata-path' -export function getAppData(){ +import { getAllKeys, getOneEntry, setEntry } from './indexedDB.js' +const ncp = require("copy-paste"); +export const getAppData = () => { return getAppDataPath().replaceAll('\\', '/') + '/AniShip'; } -export function getAnimeVostServer(){ +export const getAnimeVostServer = () => { const servers = localStorage.getItem('animevost_server'); if (servers !== null) { return servers; @@ -11,7 +13,7 @@ export function getAnimeVostServer(){ return "api.animetop.info"; } } -export function getDefaultVoicer(){ +export const getDefaultVoicer = () => { const voicer = localStorage.getItem('voicer'); if (voicer !== null) { return voicer; @@ -20,3 +22,34 @@ export function getDefaultVoicer(){ return "animevost"; } } +export const importDatabase = () => { + const database = JSON.parse(ncp.paste()); + console.log(database); + for(let i in database.favorites.animevost){ + setEntry('favorites', 'animevost', String(i), database.favorites.animevost[i]); + } + for(let i in database.favorites.anilibria){ + setEntry('favorites', 'anilibria', String(i), database.favorites.anilibria[i]); + } + return "Успешный импорт бэкапа базы данных"; +} +export const exportDatabase = async () => { + let database = { + version: process.env.npm_package_version, + favorites: { + animevost: {}, + anilibria: {} + } + }; + let value; + const animevost_keys = await getAllKeys('favorites', 'animevost'); + const anilibria_keys = await getAllKeys('favorites', 'anilibria'); + for(let i in animevost_keys){ + database.favorites.animevost[String(animevost_keys[i])] = await getOneEntry('favorites', 'animevost', String(animevost_keys[i])); + } + for(let i in anilibria_keys){ + database.favorites.anilibria[String(anilibria_keys[i])] = await getOneEntry('favorites', 'anilibria', String(anilibria_keys[i])); + } + ncp.copy(JSON.stringify(database)); + return "Бэкап успешно скопирован в буфер обмена"; +} \ No newline at end of file diff --git a/src/renderer/components/LeftMenu.vue b/src/renderer/components/LeftMenu.vue index 254fdd2..a4248ed 100644 --- a/src/renderer/components/LeftMenu.vue +++ b/src/renderer/components/LeftMenu.vue @@ -1,7 +1,7 @@