forked from laantungir/super_ball
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9285f8e583 | |||
| c5ec067a79 | |||
| 387f5d4725 |
@@ -42,9 +42,8 @@
|
||||
|
||||
<div class="tab-content" id="tab2">
|
||||
<h3>Reply</h3>
|
||||
<label for="reply-id">Replying To:</label>
|
||||
<textarea id="reply-id" placeholder="Enter the eventId..."></textarea>
|
||||
|
||||
<label for="nevent">Nevent:</label>
|
||||
<textarea id="nevent" placeholder="Enter the nevent for the note..."></textarea>
|
||||
<label for="reply-content">Message Content:</label>
|
||||
<textarea id="reply-content" rows="3" placeholder="Enter your message content..."></textarea>
|
||||
</div>
|
||||
@@ -53,6 +52,20 @@
|
||||
<h3>Create Profile</h3>
|
||||
<label for="name">Name:</label>
|
||||
<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>
|
||||
<button onclick="createFinalEvent()">Create Event That Will Be Published Publicly</button>
|
||||
@@ -764,8 +777,16 @@
|
||||
|
||||
// Get content based on active tab
|
||||
let content = '';
|
||||
let eventId = '';
|
||||
let nevent = '';
|
||||
let neventData;
|
||||
let name = '';
|
||||
let about = '';
|
||||
let profilePic = '';
|
||||
let displayName = '';
|
||||
let website = '';
|
||||
let banner = '';
|
||||
let nip05 = '';
|
||||
let lud16 = '';
|
||||
|
||||
switch(activeTab) {
|
||||
case 'tab1': // Post
|
||||
@@ -773,19 +794,41 @@
|
||||
break;
|
||||
case 'tab2': // Reply
|
||||
content = document.getElementById('reply-content').value.trim();
|
||||
eventId = document.getElementById('reply-id').value.trim();
|
||||
nevent = document.getElementById('nevent').value.trim();
|
||||
break;
|
||||
case 'tab3': // Create Profile
|
||||
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;
|
||||
}
|
||||
|
||||
// Validate content based on tab
|
||||
if (activeTab === 'tab1' || activeTab === 'tab2') {
|
||||
if (activeTab === 'tab1') {
|
||||
if (!content) {
|
||||
alert('Please enter message content');
|
||||
return;
|
||||
}
|
||||
} else if (activeTab === 'tab2') {
|
||||
if (!content) {
|
||||
alert('Please enter message content');
|
||||
return;
|
||||
}
|
||||
if (!nevent.startsWith('nevent')) {
|
||||
alert('Please enter a valid nevent');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
neventData = window.NostrTools.nip19.decode(nevent).data;
|
||||
} catch (error) {
|
||||
alert('Error decoding nevent string', error.message);
|
||||
return;
|
||||
}
|
||||
} else if (activeTab === 'tab3') {
|
||||
if (!name) {
|
||||
alert('Please enter your name');
|
||||
@@ -810,16 +853,26 @@
|
||||
eventTemplate = {
|
||||
kind: 1,
|
||||
content: content,
|
||||
tags: [['e', eventId, 'root']],
|
||||
tags: [['e', neventData.id, neventData.relays[0], 'root'], ['p', neventData.author]],
|
||||
created_at: Math.floor(Date.now() / 1000)
|
||||
};
|
||||
neventData.relays.slice(1).forEach(relay => {
|
||||
eventTemplate.tags.push(['r', relay]);
|
||||
});
|
||||
break;
|
||||
|
||||
case 'tab3': // Create Profile
|
||||
eventTemplate = {
|
||||
kind: 0,
|
||||
content: JSON.stringify({
|
||||
name: name
|
||||
name: name,
|
||||
about: about,
|
||||
picture: profilePic,
|
||||
display_name: displayName,
|
||||
website: website,
|
||||
banner: banner,
|
||||
nip05: nip05,
|
||||
lud16: lud16
|
||||
}),
|
||||
tags: [],
|
||||
created_at: Math.floor(Date.now() / 1000)
|
||||
@@ -830,6 +883,7 @@
|
||||
// Your existing event publishing logic here
|
||||
console.log('Event to publish:', eventTemplate);
|
||||
// ... rest of your publishing code
|
||||
|
||||
// Sign the event using window.nostr (NIP-07)
|
||||
finalEvent = await window.nostr.signEvent(eventTemplate);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user