Update web/superball.html

This commit is contained in:
2025-11-18 03:54:22 +00:00
parent 387f5d4725
commit c5ec067a79

View File

@@ -42,13 +42,8 @@
<div class="tab-content" id="tab2"> <div class="tab-content" id="tab2">
<h3>Reply</h3> <h3>Reply</h3>
<label for="reply-id">Replying To:</label> <label for="nevent">Nevent:</label>
<textarea id="reply-id" placeholder="Enter the eventId..."></textarea> <textarea id="nevent" placeholder="Enter the nevent for the note..."></textarea>
<label for="event-relay">Relay (Optional):</label>
<textarea id="event-relay" placeholder="Enter the relay url (wss://relay.nostr.com)..."></textarea>
<label for="author-pubkey">Author Pubkey (Optional):</label>
<textarea id="author-pubkey" placeholder="Enter the author's pubkey..."></textarea>
<label for="reply-content">Message Content:</label> <label for="reply-content">Message Content:</label>
<textarea id="reply-content" rows="3" placeholder="Enter your message content..."></textarea> <textarea id="reply-content" rows="3" placeholder="Enter your message content..."></textarea>
</div> </div>
@@ -57,6 +52,20 @@
<h3>Create Profile</h3> <h3>Create Profile</h3>
<label for="name">Name:</label> <label for="name">Name:</label>
<textarea id="name" placeholder="Enter your name..."></textarea> <textarea id="name" placeholder="Enter your name..."></textarea>
<label for="about">About:</label>
<textarea id="about" rows="2" placeholder="A short bio..."></textarea>
<label for="profile-pic">Profile Picture:</label>
<textarea id="profile-pic" placeholder="URL of your profile pic..."></textarea>
<label for="display-name">Display Name:</label>
<textarea id="display-name" placeholder="Enter your display name..."></textarea>
<label for="website">Website:</label>
<textarea id="website" placeholder="Web URL..."></textarea>
<label for="banner">Banner:</label>
<textarea id="banner" placeholder="Enter your bannerm a (~1024x768) wide picture url..."></textarea>
<label for="nip05">NIP05:</label>
<textarea id="nip05" placeholder="Enter your nip05 in the format username@domain.com..."></textarea>
<label for="lud16">Lightning Address:</label>
<textarea id="lud16" placeholder="Enter your lightning address..."></textarea>
</div> </div>
</div> </div>
<button onclick="createFinalEvent()">Create Event That Will Be Published Publicly</button> <button onclick="createFinalEvent()">Create Event That Will Be Published Publicly</button>
@@ -768,8 +777,16 @@
// Get content based on active tab // Get content based on active tab
let content = ''; let content = '';
let eventId = ''; let nevent = '';
let neventData;
let name = ''; let name = '';
let about = '';
let profilePic = '';
let displayName = '';
let website = '';
let banner = '';
let nip05 = '';
let lud16 = '';
switch(activeTab) { switch(activeTab) {
case 'tab1': // Post case 'tab1': // Post
@@ -777,12 +794,17 @@
break; break;
case 'tab2': // Reply case 'tab2': // Reply
content = document.getElementById('reply-content').value.trim(); content = document.getElementById('reply-content').value.trim();
eventId = document.getElementById('reply-id').value.trim(); nevent = document.getElementById('nevent').value.trim();
eventRelay = document.getElementById('event-relay').value.trim();
authorPubkey = document.getElementById('author-pubkey').value.trim();
break; break;
case 'tab3': // Create Profile case 'tab3': // Create Profile
name = document.getElementById('name').value.trim(); name = document.getElementById('name').value.trim();
about = document.getElementById('about').value.trim();
profilePic = document.getElementById('profile-pic').value.trim();
displayName = document.getElementById('display-name').value.trim();
website = document.getElementById('website').value.trim();
banner = document.getElementById('banner').value.trim();
nip05 = document.getElementById('nip05').value.trim();
lud16 = document.getElementById('lud16').value.trim();
break; break;
} }
@@ -792,6 +814,10 @@
alert('Please enter message content'); alert('Please enter message content');
return; return;
} }
if (!nevent.startsWith('nevent')) {
alert('Please enter a valid nevent');
return;
}
} else if (activeTab === 'tab3') { } else if (activeTab === 'tab3') {
if (!name) { if (!name) {
alert('Please enter your name'); alert('Please enter your name');
@@ -799,6 +825,13 @@
} }
} }
try {
neventData = window.NostrTools.nip19.decode(nevent).data;
} catch (error) {
alert('Error decoding nevent string', error.message);
return;
}
try { try {
let eventTemplate = {}; let eventTemplate = {};
@@ -816,16 +849,26 @@
eventTemplate = { eventTemplate = {
kind: 1, kind: 1,
content: content, content: content,
tags: [['e', eventId, eventRelay, 'root'], ['p', authorPubkey]], tags: [['e', neventData.id, neventData.relays[0], 'root'], ['p', neventData.author]],
created_at: Math.floor(Date.now() / 1000) created_at: Math.floor(Date.now() / 1000)
}; };
neventData.relays.slice(1).forEach(relay => {
eventTemplate.tags.push(['r', relay]);
});
break; break;
case 'tab3': // Create Profile case 'tab3': // Create Profile
eventTemplate = { eventTemplate = {
kind: 0, kind: 0,
content: JSON.stringify({ content: JSON.stringify({
name: name name: name,
about: about,
picture: profilePic,
display_name: displayName,
website: website,
banner: banner,
nip05: nip05,
lud16: lud16
}), }),
tags: [], tags: [],
created_at: Math.floor(Date.now() / 1000) created_at: Math.floor(Date.now() / 1000)