2023-02-23 00:54:02 +05:30
<!DOCTYPE html>
< html data-theme = "light" lang = "en" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
<!-- Primary Meta Tags -->
< title > Nostryfied< / title >
2023-02-24 03:10:48 +05:30
< meta name = "title" content = "Nostr Backup Service by Nostryfied" / >
2023-02-23 00:54:02 +05:30
< meta
name="description"
content="Fetch, backup and broadcast your Nostr events" />
<!-- Favicon -->
< link
rel="shortcut icon"
2023-02-24 03:08:22 +05:30
href="https://res.cloudinary.com/dfquzutga/image/upload/v1677188210/Screenshot_20230224_030530_Canva_2_cwvo5m.jpg"
2023-02-23 00:54:02 +05:30
type="image/x-icon" />
<!-- CSS -->
< link rel = "stylesheet" href = "style.css" / >
<!-- Lightning -->
2023-02-24 02:59:39 +05:30
< meta name = "lightning" content = "realiefan@ln.tips" / >
2023-02-23 00:54:02 +05:30
<!-- PWA -->
< meta name = "theme-color" content = "#ffffff" / >
< link
rel="apple-touch-icon"
href="https://nostr-utils.pages.dev/img/broadcast.png" />
2023-02-24 02:28:32 +05:30
2023-02-24 02:43:26 +05:30
< meta charset = "UTF-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
< title > How to Optimize Your Website Speed< / title >
2023-02-24 02:59:39 +05:30
< meta property = "og:title" content = "Take you Nostr Backups today with Nostryfied" >
< meta property = "og:type" content = "Broadcast & Export, also Download a Copy of your Data today with just one click" >
2023-02-24 02:54:02 +05:30
< meta property = "og:image" content = "https://res.cloudinary.com/dfquzutga/image/upload/v1677187258/20230224_024801_0000_2_m7hazu.png" > <!-- Replace with the URL of your larger image -->
< meta property = "og:url" content = "https://nostryfied.online" >
2023-02-24 02:43:26 +05:30
< meta property = "og:image:width" content = "1600" / >
2023-02-23 00:54:02 +05:30
< / head >
< body >
< main class = "container" >
< div class = "header-space" >
2024-01-28 17:28:21 -05:00
< h1 > Backup your Nostr Events< / h1 >
2023-02-23 00:54:02 +05:30
< / div >
< div >
< form >
< div >
< form >
2024-01-28 13:51:21 -05:00
< div class = "space-between-small" >
< p >
2024-01-28 17:28:21 -05:00
From relays
2024-01-28 13:51:21 -05:00
< input
type="text"
2024-01-28 17:28:21 -05:00
class="cool-field"
2024-01-28 13:51:21 -05:00
id="relaySet"
name="relaySet"
2024-01-28 17:30:25 -05:00
placeholder="wss://nos.lol, wss://nostr.mom or leave blank for all" />
2024-01-28 17:28:21 -05:00
< / p >
< / div >
< div class = "space-between-small-left" >
< p >
Created from
< input type = "date" class = "cool-field" id = "startDate" name = "startDate" min = "2020-01-01" value = "2020-01-01" / >
to
< input type = "date" class = "cool-field" id = "endDate" name = "endDate" min = "2020-01-01" / >
2024-01-28 13:51:21 -05:00
< / p >
< / div >
2023-08-03 18:57:56 -04:00
< div class = "space-between-small" >
2023-02-23 00:54:02 +05:30
< p >
2024-01-28 17:28:21 -05:00
By and about
2023-02-23 00:54:02 +05:30
< input
type="text"
id="pubkey"
name="pubkey"
2024-01-28 17:28:21 -05:00
class="cool-field"
2023-02-23 00:54:02 +05:30
onchange="pubkeyOnChange()"
placeholder="Public key (npub or hex)"
required />
< / p >
< / div >
2023-08-03 18:57:56 -04:00
< div class = "space-between-small" >
< div class = "space-between" >
< b > OR< / b >
< / div >
< / div >
< div class = "space-between" >
< div class = "space-between" >
< p >
< input type = "file" id = "file-selector" >
< / p >
< script >
var fileName = ""
const fileSelector = document.getElementById('file-selector');
fileSelector.addEventListener('change', (event) => {
fileName = event.target.files[0];
$('#fetch-and-broadcast').css('display', 'none')
$('#just-broadcast').css('display', 'inline-block')
});
< / script >
< / div >
< / div >
2023-02-23 00:54:02 +05:30
< / form >
< / div >
< style >
2024-01-28 17:28:21 -05:00
.cool-field {
2024-01-28 13:51:21 -05:00
font-size: 16px;
padding: 5px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
2024-01-28 17:28:21 -05:00
.cool-field::placeholder {
2024-01-28 13:51:21 -05:00
color: #999;
}
2023-02-23 00:54:02 +05:30
< / style >
2023-08-03 18:57:56 -04:00
2023-02-23 00:54:02 +05:30
< p >
< button
id="fetch-and-broadcast"
onclick="fetchAndBroadcast(); return false;">
Backup & Broadcast
< / button >
2023-08-03 18:57:56 -04:00
< button
id="just-broadcast"
onclick="justBroadcast(fileName); return false;"
style="display: none">
Broadcast from File
< / button >
2023-02-23 00:54:02 +05:30
< button
id="get-from-extension"
onclick="getFromExtension(); return false;"
style="display: none">
Get from extension
< / button >
< / p >
< / div >
< / form >
< / div >
< div class = "box" >
< div class = "box-content" >
< p id = "fetching-status" > < / p >
< p style = "padding-top: 2px" >
< progress
type="range"
id="fetching-progress"
name="fetching-progress"
min="0"
2023-08-03 14:55:52 -04:00
max="180"
2023-02-23 00:54:02 +05:30
value="0"
style="visibility: hidden" />
< / p >
< / div >
2023-08-03 14:55:52 -04:00
< div class = "box-content" id = "checking-relays-box" >
2024-01-28 15:59:28 -05:00
< table id = "checking-relays" class = "fullwidth" >
< tr id = "checking-relays-header" > < / tr >
< / table >
2023-08-03 14:55:52 -04:00
< / div >
2023-02-23 00:54:02 +05:30
< div class = "box-content" >
< p id = "file-download" > < / p >
< p id = "events-found" > < / p >
< / div >
< div class = "box-content" >
< p id = "broadcasting-status" > < / p >
< p style = "padding-top: 2px" >
< progress
type="range"
id="broadcasting-progress"
name="broadcasting-progress"
min="0"
2023-08-03 14:55:52 -04:00
max="180"
2023-02-23 00:54:02 +05:30
value="0"
style="visibility: hidden" />
< / p >
< / div >
< / div >
2024-01-28 17:28:21 -05:00
2023-02-23 00:54:02 +05:30
< footer >
< h5 >
< p > Please note that our data export service is a best-effort service and not
a complete backup. While we do our best to ensure that all data is included
in the export, we cannot guarantee that all data will be exported."< / p >
< / h4 >
2023-02-23 00:58:47 +05:30
2023-02-23 00:54:02 +05:30
< / footer >
< / main >
< script src = "https://bundle.run/buffer@6.0.3" > < / script >
< script src = "https://bundle.run/bech32@2.0.0" > < / script >
< script src = "https://nostr-utils.pages.dev/js/jquery-3.6.2.min.js" > < / script >
2023-07-27 11:26:26 -04:00
< script src = "js/nostr-utils.js" > < / script >
2023-02-23 00:54:02 +05:30
< script src = "js/relays.js" > < / script >
< script src = "js/nostr-broadcast.js" > < / script >
2024-01-28 17:28:21 -05:00
< script >
Date.prototype.toDateInputValue = (function() {
var local = new Date(this);
local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
return local.toJSON().slice(0,10);
});
document.getElementById('endDate').value = new Date().toDateInputValue()
< / script >
2023-02-23 00:54:02 +05:30
< / body >
< / html >