From 2ebc2d392b9e8df6612afffc58d4a63024261102 Mon Sep 17 00:00:00 2001 From: zefie Date: Fri, 18 Mar 2022 15:59:33 -0400 Subject: [PATCH] implement message_url support --- .../ServiceVault/wtv-mail/readmail.js | 3 +++ .../ServiceVault/wtv-mail/sendmail.js | 25 +++++++++++++------ zefie_wtvp_minisrv/WTVMail.js | 10 +++++--- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js index 82419932..752ac631 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/readmail.js @@ -302,6 +302,9 @@ ${wtvshared.htmlEntitize(message.body, true)} } }); } + if (message.url) { + data += `Included Page: ${wtvshared.htmlEntitize(message.url_title).replace(/'/gi, "'")}`; + } data += `

diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js index e49d48b0..0d5d9f8c 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js @@ -32,16 +32,20 @@ Location: wtv-mail:/sendmail`; var msg_subject = request_headers.query.message_subject || null; var msg_body = request_headers.query.message_body || null; var to_name = request_headers.query.whatever_webtv_sends_this_as || null; + var msg_url = request_headers.query.message_url || null; + var msg_url_title = request_headers.query.message_title || null; var no_signature = false; if (request_headers.query.togglesign == "true") no_signature = false; var mail_draft_data = ssid_sessions[socket.ssid].getSessionData("mail_draft"); var mail_draft_attachments = ssid_sessions[socket.ssid].getSessionData("mail_draft_attachments") || {}; if (mail_draft_data) { ssid_sessions[socket.ssid].deleteSessionData("mail_draft"); - to_addr = mail_draft_data.to_addr; - msg_subject = mail_draft_data.msg_subject; - msg_body = mail_draft_data.msg_body; - no_signature = mail_draft_data.no_signature; + if (mail_draft_data.to_addr) to_addr = mail_draft_data.to_addr; + if (mail_draft_data.msg_subject) msg_subject = mail_draft_data.msg_subject; + if (mail_draft_data.msg_body) msg_body = mail_draft_data.msg_body; + if (mail_draft_data.no_signature) no_signature = mail_draft_data.no_signature; + if (mail_draft_data.msg_url) msg_url = mail_draft_data.msg_url; + if (mail_draft_data.msg_url_title) msg_url_title = mail_draft_data.msg_url_title; } if (mail_draft_attachments) { if (mail_draft_attachments.message_snapshot_data) message_snapshot_data = mail_draft_attachments.message_snapshot_data; @@ -94,7 +98,7 @@ Content-Type: audio/wav`; } } - var messagereturn = ssid_sessions[socket.ssid].mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments); + var messagereturn = ssid_sessions[socket.ssid].mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments, msg_url, msg_url_title); if (messagereturn !== true) { var errpage = wtvshared.doErrorPage(400, messagereturn); headers = errpage[0]; @@ -113,7 +117,9 @@ Location: wtv-mail:/listmail`; to_addr: to_addr, msg_subject: msg_subject, msg_body: msg_body, - no_signature: no_signature + no_signature: no_signature, + msg_url: msg_url, + msg_url_title: msg_url_title } ssid_sessions[socket.ssid].setSessionData("mail_draft", mail_draft_data); headers = `200 OK @@ -415,7 +421,13 @@ hspace=0>`; if (ssid_sessions[socket.ssid].getSessionData("subscriber_signature") && ssid_sessions[socket.ssid].getSessionData("subscriber_signature") != "" && !no_signature) { data += wtvshared.sanitizeSignature(ssid_sessions[socket.ssid].getSessionData("subscriber_signature")); } + if (msg_url) { + data += ` + +Included Page: ${wtvshared.htmlEntitize(msg_url_title).replace(/'/gi, "'")}`; + } data += ` + @@ -575,7 +587,6 @@ ${(!mail_draft_attachments.message_voicemail_data) ? '' : ' `; } - data += ` diff --git a/zefie_wtvp_minisrv/WTVMail.js b/zefie_wtvp_minisrv/WTVMail.js index f232c12a..aff066d7 100644 --- a/zefie_wtvp_minisrv/WTVMail.js +++ b/zefie_wtvp_minisrv/WTVMail.js @@ -123,7 +123,7 @@ class WTVMail { return this.uuid.v1(); } - createMessage(mailboxid, from_addr, to_addr, msgbody, subject = null, from_name = null, to_name = null, signature = null, date = null, known_sender = false, attachments = []) { + createMessage(mailboxid, from_addr, to_addr, msgbody, subject = null, from_name = null, to_name = null, signature = null, date = null, known_sender = false, attachments = [], url = null, url_title = null) { if (this.createMailbox(mailboxid)) { if (!date) date = Math.floor(Date.now() / 1000); @@ -142,7 +142,9 @@ class WTVMail { "known_sender": known_sender, "signature": signature, "unread": true, - "attachments": attachments + "attachments": attachments, + "url": url, + "url_title": url_title } try { if (this.fs.existsSync(message_file_out)) { @@ -335,7 +337,7 @@ class WTVMail { return false; } - sendMessageToAddr(from_addr, to_addr, msgbody, subject = null, from_name = null, to_name = null, signature = null, attachments = []) { + sendMessageToAddr(from_addr, to_addr, msgbody, subject = null, from_name = null, to_name = null, signature = null, attachments = [], url = null, url_title = null) { if (!to_addr) return "Your message could not be sent.

You must specify an addressee in the To: area."; @@ -367,7 +369,7 @@ class WTVMail { if (mailbox_exists) dest_user_mailstore.createWelcomeMessage(); } // if the mailbox exists, deliver the message - if (dest_user_mailstore.mailboxExists(0)) dest_user_mailstore.createMessage(0, from_addr, to_addr, msgbody, subject, from_name, to_name, signature, null, this.isInUserAddressBook(to_addr, from_addr), attachments); + if (dest_user_mailstore.mailboxExists(0)) dest_user_mailstore.createMessage(0, from_addr, to_addr, msgbody, subject, from_name, to_name, signature, null, this.isInUserAddressBook(to_addr, from_addr), attachments, url, url_title); else return "There was an internal error sending the message to " + to_addr + ". Please try again later"; // clean up