#!/usr/bin/env node // Lädt den Gedaechtnis-Archiv (gedaechtnis/dist) nach Arweave via ar.io Turbo. // Eigener App-Name, damit der Site-Zeiger diese Manifeste nie auswählt. const fs = require('fs'); const path = require('path'); const { TurboFactory, EthereumSigner } = require('@ardrive/turbo-sdk'); const KEYFILE = path.join(__dirname, 'signing-key.json'); async function main() { const key = JSON.parse(fs.readFileSync(KEYFILE, 'utf8')).privateKey; const signer = new EthereumSigner(key); const turbo = TurboFactory.authenticated({ signer, token: 'ethereum' }); const folderPath = path.join(__dirname, '..', 'gedaechtnis', 'dist'); const result = await turbo.uploadFolder({ folderPath, dataItemOpts: { tags: [ { name: 'App-Name', value: 'kiel-gedaechtnis' }, { name: 'Published-At', value: String(Math.floor(Date.now() / 1000)) }, ], }, manifestOptions: { indexFile: 'index.html', fallbackFile: 'index.html', }, }); console.log('\n=== ERGEBNIS ==='); console.log('Manifest-TxID:', result.manifestResponse?.id); for (const f of result.fileResponses || []) console.log('Datei:', f.id); fs.writeFileSync(path.join(__dirname, 'last-upload-gedaechtnis.json'), JSON.stringify(result, null, 2)); console.log('\nGedaechtnis: https://arweave.net/' + result.manifestResponse?.id + '/'); } main().catch(e => { console.error('FEHLER:', e.message || e); process.exit(1); });