This commit is contained in:
Morgan 2024-02-15 00:48:21 +09:00
parent ee5bc74142
commit 5f3a55c473
No known key found for this signature in database
1 changed files with 34 additions and 2 deletions

View File

@ -93,7 +93,34 @@
async function syncLocalStorage(){ async function syncLocalStorage(){
console.log("Syncing...") console.log("Syncing...")
uploadLocalStorage(); uploadLocalStorage();
fetchLocalStorage(); localStorage.setItem('lastModified', new Date().toISOString());
}
function dumpLocalStorage(){
try {
let storageObject = {};
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
if (key) {
storageObject[key] = localStorage.getItem(key);
}
}
const dataStr = JSON.stringify(storageObject, null, 2);
const blob = new Blob([dataStr], { type: "application/json" });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
const dateTimeStr = now.toISOString().replace(/:\d+\.\d+Z$/, '').replace(/-|:/g, '_');
link.download = `ChatGPT-web_${dateTimeStr}.json`;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
URL.revokeObjectURL(url);
} catch (error) {
console.error('Error dumping localStorage:', error);
}
} }
onMount(() => { onMount(() => {
@ -154,6 +181,11 @@
<span class="icon"><Fa icon={faRotate}/></span> <span class="icon"><Fa icon={faRotate}/></span>
</button> </button>
</div> </div>
<div class="is-left is-up ml-2">
<button class="button" aria-haspopup="true" on:click|preventDefault|stopPropagation={() => { dumpLocalStorage(); }}>
<span class="icon"><Fa icon={faDownload}/></span>
</button>
</div>
</div> </div>
<div class="level-right"> <div class="level-right">
{#if !hasModels} {#if !hasModels}
@ -164,7 +196,7 @@
{:else} {:else}
<div class="level-item"> <div class="level-item">
<button on:click={() => { $pinMainMenu = false; startNewChatWithWarning(activeChatId) }} class="panel-block button" title="Start new chat with default profile" class:is-disabled={!hasModels} <button on:click={() => { $pinMainMenu = false; startNewChatWithWarning(activeChatId) }} class="panel-block button" title="Start new chat with default profile" class:is-disabled={!hasModels}
><span class="greyscale mr-1"><Fa icon={faSquarePlus} /></span> New chat</button> ><span class="greyscale mr-1"><Fa icon={faSquarePlus} /></span></button>
</div> </div>
{/if} {/if}
</div> </div>