Download all events.

This commit is contained in:
Ryan Breen
2023-02-15 23:02:38 -05:00
parent 91b8d6023b
commit 0ae412e1ba
3 changed files with 34 additions and 1 deletions

View File

@@ -46,3 +46,24 @@ export async function getHosts() {
}
return [...hosts];
}
export async function downloadAllContents() {
let db = await openEventsDb();
let events = [];
let cursor = await db.transaction('events').store.openCursor();
while (cursor) {
events.push(cursor.value.event);
cursor = await cursor.continue();
}
events = events.map(e => JSON.stringify(e));
events = events.join('\n');
console.log(events);
const file = new File([events], 'events.jsonl', {
type: 'application/octet-stream',
});
const blob = new Blob([events], { type: 'plain/text' });
return blob;
}

View File

@@ -107,6 +107,10 @@
<input type="text" class="input" x-model="pubkey" @input.debounce="reload">
</div>
</div>
<div>
<button class="button mt-3" @click="saveAll">Save all</button>
</div>
</div>

View File

@@ -1,7 +1,7 @@
import Alpine from 'alpinejs';
import jsonFormatHighlight from 'json-format-highlight';
import { getPublicKey } from 'nostr-tools';
import { getHosts, sortByIndex } from './db';
import { downloadAllContents, getHosts, sortByIndex } from './db';
import { getProfiles, KINDS } from './utils';
const TOMORROW = new Date();
@@ -50,6 +50,14 @@ Alpine.data('eventLog', () => ({
}));
},
async saveAll() {
const file = await downloadAllContents();
browser.tabs.create({
url: URL.createObjectURL(file),
active: true,
});
},
quickKindSelect() {
if (this.quickKind === '') return;
const i = parseInt(this.quickKind);