diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js index 96c3a35f..accd28b2 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js @@ -19,13 +19,22 @@ if (!intro_seen && !request_headers.query.intro_seen) { headers = "300 OK\nwtv-visit: " + clientErrorMsg; } + if (request_headers.query.clear == "true") { + ssid_sessions[socket.ssid].deleteSessionData("mail_draft"); + ssid_sessions[socket.ssid].deleteSessionData("mail_draft_attachments"); + headers = `300 OK +wtv-expire: wtv-mail:/listmail +wtv-expire: wtv-mail:/sendmail +Location: wtv-mail:/sendmail`; + } + var to_addr = request_headers.query.message_to || null; 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 no_signature = (request_headers.query.togglesign == "true") ? false : true; // opposite webtv var mail_draft_data = ssid_sessions[socket.ssid].getSessionData("mail_draft"); - var mail_draft_attachments = ssid_sessions[socket.ssid].getSessionData("mail_draft_attachments"); + 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; @@ -44,7 +53,7 @@ if (!intro_seen && !request_headers.query.intro_seen) { headers = `200 OK Content-Type: image/jpeg`; data = message_snapshot_data; - } else if (message_voicemail_data && request_headers.query.get_snap) { + } else if (message_voicemail_data && request_headers.query.get_gab) { headers = `200 OK Content-Type: audio/wav`; data = message_voicemail_data; @@ -74,10 +83,10 @@ Content-Type: audio/wav`; attachments.push({ 'Content-Type': 'image/jpeg', data: message_snapshot_data }); } - if (typeof message_snapshot_data == "object") { - attachments.push({ 'Content-Type': 'audio/wav', data: new Buffer.from(message_snapshot_data).toString('base64') }); + if (typeof message_voicemail_data == "object") { + attachments.push({ 'Content-Type': 'audio/wav', data: new Buffer.from(message_voicemail_data).toString('base64') }); } else { - attachments.push({ 'Content-Type': 'audio/wav', data: new message_snapshot_data }); + attachments.push({ 'Content-Type': 'audio/wav', data: new message_voicemail_data }); } var messagereturn = ssid_sessions[socket.ssid].mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments); @@ -110,9 +119,19 @@ wtv-expire: wtv-mail:/sendmail`; headers = `200 OK Content-type: text/html`; - if (request_headers.query.snapping == "false") headers += "\nwtv-expire: cache:snapshot.jpg"; - if (request_headers.query.gabbing == "false") headers += "\nwtv-expire: cache:voicemail.wav"; var mail_draft_data = ssid_sessions[socket.ssid].getSessionData("mail_draft_attachments") || {}; + if (request_headers.query.snapping == "false") { + headers += "\nwtv-expire: cache:snapshot.jpg"; + if (mail_draft_data.message_snapshot_data) mail_draft_data.message_snapshot_data = null; + ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); + } + + if (request_headers.query.gabbing == "false") { + headers += "\nwtv-expire: cache:voicemail.wav"; + if (mail_draft_data.message_voicemail_data) mail_draft_data.message_voicemail_data = null; + ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); + } + if (request_headers.query.message_snapshot_data) { mail_draft_data.message_snapshot_data = request_headers.query.message_snapshot_data ssid_sessions[socket.ssid].setSessionData("mail_draft_attachments", mail_draft_data); @@ -432,7 +451,7 @@ USESTYLE NOARGS> `; - if ((request_headers.query.snapping && request_headers.query.snapping !== 'false') || message_snapshot_data) { + if ((request_headers.query.snapping && request_headers.query.snapping !== 'false') || mail_draft_attachments.message_snapshot_data) { data += ` @@ -461,7 +480,7 @@ USESTYLE NOARGS> `; - if (!message_snapshot_data) { + if (!mail_draft_attachments.message_snapshot_data) { data += ` `; } @@ -469,7 +488,7 @@ USESTYLE NOARGS> data += ` - + @@ -496,7 +515,7 @@ USESTYLE NOARGS> `; } - if (request_headers.query.gabbing && request_headers.query.gabbing !== 'false') { + if ((request_headers.query.gabbing && request_headers.query.gabbing !== 'false') || mail_draft_attachments.message_voicemail_data) { data += ` @@ -527,12 +546,12 @@ USESTYLE NOARGS> -${(message_voicemail_data) ? '' : ''} +${(!mail_draft_attachments.message_voicemail_data) ? '' : ''}
-  Recording +  Recording  Detach  diff --git a/zefie_wtvp_minisrv/WTVShared.js b/zefie_wtvp_minisrv/WTVShared.js index c4ddfc2a..009e1558 100644 --- a/zefie_wtvp_minisrv/WTVShared.js +++ b/zefie_wtvp_minisrv/WTVShared.js @@ -200,11 +200,6 @@ class WTVShared { if (obj.post_data) { obj.post_data = obj.post_data.toString(); } - if (obj.query) { - obj.query = Object.assign({}, obj.query); - if (obj.query.message_snapshot_data) obj.query.message_snapshot_data = '(binary POST filtered, see post_data hex dump)' - if (obj.query.message_voicemail_data) obj.query.message_snapshot_data = '(binary POST filtered, see post_data hex dump)' - } return obj; }