This commit is contained in:
Morgan 2024-02-13 11:33:18 +09:00
parent e083772d8a
commit aa780ec278
No known key found for this signature in database
1 changed files with 20 additions and 25 deletions

View File

@ -3,14 +3,15 @@
import ChatMenuItem from './ChatMenuItem.svelte' import ChatMenuItem from './ChatMenuItem.svelte'
import { chatsStorage, pinMainMenu, checkStateChange, getChatSortOption, setChatSortOption } from './Storage.svelte' import { chatsStorage, pinMainMenu, checkStateChange, getChatSortOption, setChatSortOption } from './Storage.svelte'
import Fa from 'svelte-fa/src/fa.svelte' import Fa from 'svelte-fa/src/fa.svelte'
import { faSquarePlus, faKey, faDownload, faUpload } from '@fortawesome/free-solid-svg-icons/index' import { faSquarePlus, faKey, faDownload, faRotate, faUpload } from '@fortawesome/free-solid-svg-icons/index'
import ChatOptionMenu from './ChatOptionMenu.svelte' import ChatOptionMenu from './ChatOptionMenu.svelte'
import logo from '../assets/logo.svg' import logo from '../assets/logo.svg'
import { clickOutside } from 'svelte-use-click-outside' import { clickOutside } from 'svelte-use-click-outside'
import { startNewChatWithWarning } from './Util.svelte' import { startNewChatWithWarning } from './Util.svelte'
import { chatSortOptions } from './Settings.svelte' import { chatSortOptions } from './Settings.svelte'
import { hasActiveModels } from './Models.svelte' import { hasActiveModels } from './Models.svelte'
import { onMount } from 'svelte';
$: sortedChats = $chatsStorage.sort(getChatSortOption().sortFn) $: sortedChats = $chatsStorage.sort(getChatSortOption().sortFn)
$: activeChatId = $params && $params.chatId ? parseInt($params.chatId) : undefined $: activeChatId = $params && $params.chatId ? parseInt($params.chatId) : undefined
@ -36,7 +37,7 @@
storageObject[key] = localStorage.getItem(key); storageObject[key] = localStorage.getItem(key);
} }
} }
const response = await fetch('https://api.morgan.kr/localstore', { const response = await fetch('https://api.morgan.kr/localstore/19492', {
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
@ -50,7 +51,7 @@
const data = await response.json(); const data = await response.json();
console.log(data) console.log(data)
alert("Uploaded LocalStorage: " + data.id); alert("Uploaded savedata.");
return data.id; return data.id;
} catch (error) { } catch (error) {
@ -59,19 +60,9 @@
} }
} }
async function fetchLocalStorage(id){ async function fetchLocalStorage(){
try { try {
const id = prompt("RemoteStorage ID?"); const response = await fetch('https://api.morgan.kr/localstore/19492', {
if(id === null || id.trim() === "") {
alert("No ID provided. Fetching aborted.");
return;
}
let currentStorageId = await uploadLocalStorage();
alert('Backuped LocalStorage: ' + currentStorageId);
const response = await fetch(`https://api.morgan.kr/localstore/${id}`, {
method: 'GET', method: 'GET',
}); });
if (!response.ok) { if (!response.ok) {
@ -84,15 +75,24 @@
Object.entries(newData).forEach(([key, value]) => { Object.entries(newData).forEach(([key, value]) => {
localStorage.setItem(key, value); localStorage.setItem(key, value);
}); });
alert('Fetched RemoteStorage'); alert('Fetched savedata');
window.reload(); window.reload();
} catch (error) { } catch (error) {
console.error('Error fetching new localStorage:', error); console.error('Error fetching localStorage:', error);
} }
} }
async function syncLocalStorage(){
uploadLocalStorage();
}
onMount(() => {
console.log('Downloading from server.');
fetchLocalStorage();
});
</script> </script>
<aside class="menu main-menu" class:pinned={$pinMainMenu} use:clickOutside={() => { $pinMainMenu = false }}> <aside class="menu main-menu" class:pinned={$pinMainMenu} use:clickOutside={() => { $pinMainMenu = false }}>
@ -141,13 +141,8 @@
</div> </div>
</div> </div>
<div class="is-left is-up ml-2"> <div class="is-left is-up ml-2">
<button class="button" aria-haspopup="true" on:click|preventDefault|stopPropagation={() => { uploadLocalStorage(); }}> <button class="button" aria-haspopup="true" on:click|preventDefault|stopPropagation={() => { syncLocalStorage(); }}>
<span class="icon"><Fa icon={faUpload}/></span> <span class="icon"><Fa icon={faRotate}/></span>
</button>
</div>
<div class="is-left is-up ml-2">
<button class="button" aria-haspopup="true" on:click|preventDefault|stopPropagation={() => { fetchLocalStorage(); }}>
<span class="icon"><Fa icon={faDownload}/></span>
</button> </button>
</div> </div>
</div> </div>