Social Media Auto-Poster

Social Media Auto-Poster

Generate engaging posts for your brand in seconds.

${elements.platform.value.split('(')[0].trim()}

${postText}

`; elements.postsOutput.appendChild(card); }); // Add event listeners to the new copy buttons document.querySelectorAll('.copy-button').forEach((button, index) => { button.addEventListener('click', () => copyToClipboard(posts[index], button)); }); elements.resultContainer.classList.remove('hidden'); elements.error.classList.add('hidden'); }; const displayError = (message) => { elements.error.textContent = message; elements.error.classList.remove('hidden'); elements.resultContainer.classList.add('hidden'); elements.loading.classList.add('hidden'); }; const copyToClipboard = (text, buttonElement) => { const tempTextArea = document.createElement('textarea'); tempTextArea.value = text; document.body.appendChild(tempTextArea); tempTextArea.select(); try { document.execCommand('copy'); const originalText = buttonElement.textContent; buttonElement.textContent = 'Copied!'; setTimeout(() => { buttonElement.textContent = originalText; }, 2000); } catch (err) { console.error('Failed to copy text: ', err); } document.body.removeChild(tempTextArea); }; const downloadPDF = () => { if (typeof window.jspdf === 'undefined') { displayError("Could not generate PDF. The 'jspdf' library is missing."); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF({ unit: 'pt', format: 'a4' }); const margin = 40; let y = margin; doc.setFont("helvetica", "bold"); doc.setFontSize(22); doc.text("Social Media Posts", doc.internal.pageSize.getWidth() / 2, y, { align: 'center' }); y += 20; doc.setFont("helvetica", "normal"); doc.setFontSize(11); doc.setTextColor(100); doc.text(`Topic: ${elements.topic.value}`, doc.internal.pageSize.getWidth() / 2, y, { align: 'center' }); y += 40; generatedPosts.forEach((post, index) => { if (y > doc.internal.pageSize.getHeight() - 100) { // Check for page break doc.addPage(); y = margin; } doc.setFont("helvetica", "bold"); doc.setFontSize(14); doc.setTextColor(219, 39, 119); // Pink color doc.text(`Post Variation #${index + 1} (${elements.platform.value.split('(')[0].trim()})`, margin, y); y += 20; doc.setFont("helvetica", "normal"); doc.setFontSize(11); doc.setTextColor(50); const postLines = doc.splitTextToSize(post, doc.internal.pageSize.getWidth() - margin * 2); doc.text(postLines, margin, y); y += postLines.length * 12 + 30; doc.setDrawColor(243, 244, 246); doc.line(margin, y, doc.internal.pageSize.getWidth() - margin, y); y += 25; }); doc.save("social-media-posts.pdf"); }; elements.generateButton.addEventListener('click', generatePosts); elements.pdfButton.addEventListener('click', downloadPDF); });
Scroll to Top