fix/optimize wtv-mail
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
session_data.mailstore.setMailIntroSeen(true)
|
session_data.mailstore.setMailIntroSeen(true)
|
||||||
headers = `200 OK
|
headers = `200 OK
|
||||||
Content-type: text/html`;
|
Content-type: text/html`;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
var camefrom = request_headers.query.camefrom;
|
const camefrom = request_headers.query.camefrom;
|
||||||
var action = request_headers.query.action;
|
const action = request_headers.query.action;
|
||||||
|
|
||||||
var address_book = null
|
let address_book = null
|
||||||
address_book = session_data.getSessionData("address_book")
|
address_book = session_data.getSessionData("address_book")
|
||||||
if (address_book == null) {
|
if (address_book == null) {
|
||||||
session_data.setSessionData("address_book", [])
|
session_data.setSessionData("address_book", [])
|
||||||
@@ -698,10 +698,10 @@ ${(!newaddress) ? `<input type=hidden name="id" value="${request_headers.query.i
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "add":
|
case "add":
|
||||||
var nameExists = false;
|
let nameExists = false;
|
||||||
var addrExists = false;
|
let addrExists = false;
|
||||||
// dumbass protection for making addresses look proper in the list
|
// dumbass protection for making addresses look proper in the list
|
||||||
var address = request_headers.query.address.split("@")[0];
|
let address = request_headers.query.address.split("@")[0];
|
||||||
address += `@${minisrv_config.config.service_name}`;
|
address += `@${minisrv_config.config.service_name}`;
|
||||||
// sanity checks to make sure the user doesn't have duplicate names/addresses
|
// sanity checks to make sure the user doesn't have duplicate names/addresses
|
||||||
address_book.forEach(user => {
|
address_book.forEach(user => {
|
||||||
@@ -735,8 +735,8 @@ Location: wtv-mail:/addressbook`;
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "change":
|
case "change":
|
||||||
var address = request_headers.query.address
|
address = request_headers.query.address
|
||||||
var nickname = request_headers.query.nickname
|
let nickname = request_headers.query.nickname
|
||||||
if (!address) {
|
if (!address) {
|
||||||
address = address_book[request_headers.query.id].address
|
address = address_book[request_headers.query.id].address
|
||||||
}
|
}
|
||||||
@@ -746,10 +746,10 @@ Location: wtv-mail:/addressbook`;
|
|||||||
// dumbass protection for making addresses look proper in the list
|
// dumbass protection for making addresses look proper in the list
|
||||||
address = address.split("@")[0];
|
address = address.split("@")[0];
|
||||||
address += `@${minisrv_config.config.service_name}`;
|
address += `@${minisrv_config.config.service_name}`;
|
||||||
var nameExists = false;
|
nameExists = false;
|
||||||
var addrExists = false;
|
addrExists = false;
|
||||||
if (address_book.length > 1) {
|
if (address_book.length > 1) {
|
||||||
var otheraddrs = address_book.slice(0)
|
const otheraddrs = address_book.slice(0)
|
||||||
otheraddrs.splice(request_headers.query.id, 1)
|
otheraddrs.splice(request_headers.query.id, 1)
|
||||||
// sanity checks to make sure the user doesn't have duplicate names/addresses
|
// sanity checks to make sure the user doesn't have duplicate names/addresses
|
||||||
otheraddrs.forEach(user => {
|
otheraddrs.forEach(user => {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
headers = `200 OK
|
headers = `200 OK
|
||||||
Content-Type: x-wtv-addresses
|
Content-Type: x-wtv-addresses
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
var errpage = null;
|
let errpage, message;
|
||||||
|
const messageid = request_headers.query.message_id;
|
||||||
var messageid = request_headers.query.message_id;
|
const attachment_id = request_headers.query.attachment_id;
|
||||||
var attachment_id = request_headers.query.attachment_id;
|
|
||||||
if (!attachment_id && attachment_id != 0) errpage = wtvshared.doErrorPage(400, "Attachment ID required.");
|
if (!attachment_id && attachment_id != 0) errpage = wtvshared.doErrorPage(400, "Attachment ID required.");
|
||||||
else {
|
else {
|
||||||
var message = session_data.mailstore.getMessageByID(messageid);
|
message = session_data.mailstore.getMessageByID(messageid);
|
||||||
if (!message) errpage = wtvshared.doErrorPage(400, "Invalid Message ID");
|
if (!message) errpage = wtvshared.doErrorPage(400, "Invalid Message ID");
|
||||||
else {
|
else {
|
||||||
if (!message.attachments) message.attachments = []; // backwards compat
|
if (!message.attachments) message.attachments = []; // backwards compat
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
var errpage = null;
|
let errpage = null;
|
||||||
|
|
||||||
var messageid = request_headers.query.message_id || null;
|
const messageid = request_headers.query.message_id || null;
|
||||||
if (!messageid) {
|
if (!messageid) {
|
||||||
// get user signature
|
// get user signature
|
||||||
data = session_data.getSessionData("subscriber_signature");
|
data = session_data.getSessionData("subscriber_signature");
|
||||||
} else {
|
} else {
|
||||||
// get message signature
|
// get message signature
|
||||||
var message = session_data.mailstore.getMessageByID(messageid);
|
const message = session_data.mailstore.getMessageByID(messageid);
|
||||||
if (!message) errpage = wtvshared.doErrorPage(400, "Invalid Message ID");
|
if (!message) errpage = wtvshared.doErrorPage(400, "Invalid Message ID");
|
||||||
data = message.signature;
|
data = message.signature;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request_headers.query.sanitize) {
|
if (request_headers.query.sanitize) {
|
||||||
if (!data) data = '';
|
if (!data) data = '';
|
||||||
var message_colors = session_data.mailstore.getSignatureColors(data)
|
const message_colors = session_data.mailstore.getSignatureColors(data)
|
||||||
|
|
||||||
if (data.indexOf("<html>") >= 0) {
|
if (data.indexOf("<html>") >= 0) {
|
||||||
data = wtvshared.sanitizeSignature(data).replace("<html>", `<html><body bgcolor=${message_colors.bgcolor} text=${message_colors.text} link=${message_colors.link} vlink=${message_colors.vlink} vspace=0 hspace=0>`);
|
data = wtvshared.sanitizeSignature(data).replace("<html>", `<html><body bgcolor=${message_colors.bgcolor} text=${message_colors.text} link=${message_colors.link} vlink=${message_colors.vlink} vspace=0 hspace=0>`);
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
var mailstore_exists = false;
|
let mailstore_exists = false;
|
||||||
|
|
||||||
function mail_end_error(msg) {
|
function mail_end_error(msg) {
|
||||||
var errpage = wtvshared.doErrorPage("400", msg);
|
const errpage = wtvshared.doErrorPage("400", msg);
|
||||||
headers = errpage[0];
|
headers = errpage[0];
|
||||||
data = errpage[1];
|
data = errpage[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var intro_seen = session_data.mailstore.checkMailIntroSeen();
|
const intro_seen = session_data.mailstore.checkMailIntroSeen();
|
||||||
if (!intro_seen && !request_headers.query.intro_seen) {
|
if (!intro_seen && !request_headers.query.intro_seen) {
|
||||||
// user is trying to bypass the intro screen
|
// user is trying to bypass the intro screen
|
||||||
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
||||||
@@ -26,14 +26,14 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
if (mailstore_exists) {
|
if (mailstore_exists) {
|
||||||
// mailstore exists
|
// mailstore exists
|
||||||
|
|
||||||
var default_limit = (minisrv_config.services[service_name].messages_per_page) ? minisrv_config.services[service_name].messages_per_page : 25; // user config or 25
|
const default_limit = (minisrv_config.services[service_name].messages_per_page) ? minisrv_config.services[service_name].messages_per_page : 25; // user config or 25
|
||||||
var mailbox = (request_headers.query.mailbox) ? parseInt(request_headers.query.mailbox) : 0;
|
const mailbox = (request_headers.query.mailbox) ? parseInt(request_headers.query.mailbox) : 0;
|
||||||
var limit = (request_headers.query.limit) ? parseInt(request_headers.query.limit) : default_limit;
|
const limit = (request_headers.query.limit) ? parseInt(request_headers.query.limit) : default_limit;
|
||||||
var reverse_sort = (request_headers.query.reverse_sort) ? true : false;
|
const reverse_sort = (request_headers.query.reverse_sort) ? true : false;
|
||||||
var page = (request_headers.query.page) ? parseInt(request_headers.query.page) : 0;
|
const page = (request_headers.query.page) ? parseInt(request_headers.query.page) : 0;
|
||||||
|
|
||||||
// get mailbox name
|
// get mailbox name
|
||||||
var mailbox_name = session_data.mailstore.getMailboxById(parseInt(mailbox));
|
const mailbox_name = session_data.mailstore.getMailboxById(parseInt(mailbox));
|
||||||
|
|
||||||
// if false or null, then mailbox is invalid
|
// if false or null, then mailbox is invalid
|
||||||
if (!mailbox_name) {
|
if (!mailbox_name) {
|
||||||
@@ -42,7 +42,7 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
// mailboxid is ok
|
// mailboxid is ok
|
||||||
if (!session_data.mailstore.mailboxExists(mailbox)) {
|
if (!session_data.mailstore.mailboxExists(mailbox)) {
|
||||||
// mailbox does not yet exist, create it
|
// mailbox does not yet exist, create it
|
||||||
var mailbox_exists = session_data.mailstore.createMailbox(mailbox);
|
const mailbox_exists = session_data.mailstore.createMailbox(mailbox);
|
||||||
if (!mailbox_exists) {
|
if (!mailbox_exists) {
|
||||||
// failed to create mailbox for some reason
|
// failed to create mailbox for some reason
|
||||||
mail_end_error();
|
mail_end_error();
|
||||||
@@ -53,11 +53,11 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var message_list = session_data.mailstore.listMessages(mailbox, limit, reverse_sort, (page * limit))
|
const message_list = session_data.mailstore.listMessages(mailbox, limit, reverse_sort, (page * limit))
|
||||||
var total_message_count = session_data.mailstore.countMessages(mailbox);
|
const total_message_count = session_data.mailstore.countMessages(mailbox);
|
||||||
var total_unread_message_count = session_data.mailstore.countUnreadMessages(mailbox);
|
const total_unread_message_count = session_data.mailstore.countUnreadMessages(mailbox);
|
||||||
|
|
||||||
var message_list_string = null;
|
let message_list_string = null;
|
||||||
if (total_message_count == 0) {
|
if (total_message_count == 0) {
|
||||||
message_list_string = "No new mail messages for ";
|
message_list_string = "No new mail messages for ";
|
||||||
} else {
|
} else {
|
||||||
@@ -69,8 +69,8 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var username = session_data.getSessionData("subscriber_username");
|
const username = session_data.getSessionData("subscriber_username");
|
||||||
var notImplementedAlert = new clientShowAlert({
|
const notImplementedAlert = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
'message': "This feature is not available.",
|
'message': "This feature is not available.",
|
||||||
'buttonlabel1': "Okay",
|
'buttonlabel1': "Okay",
|
||||||
@@ -201,7 +201,7 @@ label="View saved e-mail messages">
|
|||||||
<td height=80>
|
<td height=80>
|
||||||
<img src="wtv-mail:/content/images/Mail.gif" width=87 height=45>
|
<img src="wtv-mail:/content/images/Mail.gif" width=87 height=45>
|
||||||
`;
|
`;
|
||||||
var icon_image = null;
|
let icon_image = null;
|
||||||
switch (mailbox_name) {
|
switch (mailbox_name) {
|
||||||
case "Inbox":
|
case "Inbox":
|
||||||
icon_image = session_data.mailstore.getMailboxIcon();
|
icon_image = session_data.mailstore.getMailboxIcon();
|
||||||
@@ -280,11 +280,11 @@ ${username}@${minisrv_config.config.service_name}
|
|||||||
<hr width=422 align=left>
|
<hr width=422 align=left>
|
||||||
`;
|
`;
|
||||||
Object.keys(message_list).forEach(function (k) {
|
Object.keys(message_list).forEach(function (k) {
|
||||||
var message = message_list[k];
|
const message = message_list[k];
|
||||||
if (typeof message.subject == "object" && message.subject) message.subject = wtvshared.decodeBufferText(message.subject);
|
if (typeof message.subject == "object" && message.subject) message.subject = wtvshared.decodeBufferText(message.subject);
|
||||||
message.known_sender = session_data.isAddressInAddressBook(message.from_addr);
|
message.known_sender = session_data.isAddressInAddressBook(message.from_addr);
|
||||||
var message_font_open = "<font color=#7A9FCC>";
|
let message_font_open = "<font color=#7A9FCC>";
|
||||||
var message_font_close = "</font>";
|
let message_font_close = "</font>";
|
||||||
if (message.unread) {
|
if (message.unread) {
|
||||||
message_font_open = `<b><font color=#99E6FF>`;
|
message_font_open = `<b><font color=#99E6FF>`;
|
||||||
message_font_close = "</font></b>"
|
message_font_close = "</font></b>"
|
||||||
@@ -309,7 +309,7 @@ ${message_font_close}
|
|||||||
<td abswidth=47 maxlines=1>
|
<td abswidth=47 maxlines=1>
|
||||||
${message_font_open}
|
${message_font_open}
|
||||||
`;
|
`;
|
||||||
var message_date = new Date(message.date * 1000);
|
const message_date = new Date(message.date * 1000);
|
||||||
data += (message_date.getMonth() + 1) + "/" + message_date.getDate() + "\n";
|
data += (message_date.getMonth() + 1) + "/" + message_date.getDate() + "\n";
|
||||||
data += `
|
data += `
|
||||||
${message_font_close}
|
${message_font_close}
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
var mailstore_exists = false;
|
|
||||||
|
|
||||||
function mail_end_error(msg) {
|
function mail_end_error(msg) {
|
||||||
var errpage = wtvshared.doErrorPage("400", msg);
|
const errpage = wtvshared.doErrorPage("400", msg);
|
||||||
headers = errpage[0];
|
headers = errpage[0];
|
||||||
data = errpage[1];
|
data = errpage[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
var intro_seen = session_data.mailstore.checkMailIntroSeen();
|
const intro_seen = session_data.mailstore.checkMailIntroSeen();
|
||||||
if (!intro_seen && !request_headers.query.intro_seen) {
|
if (!intro_seen && !request_headers.query.intro_seen) {
|
||||||
// user is trying to bypass the intro screen
|
// user is trying to bypass the intro screen
|
||||||
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
||||||
@@ -16,13 +14,13 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
if (!request_headers.query.message_id) {
|
if (!request_headers.query.message_id) {
|
||||||
mail_end_error("Message ID Required");
|
mail_end_error("Message ID Required");
|
||||||
} else {
|
} else {
|
||||||
var messageid = request_headers.query.message_id;
|
const messageid = request_headers.query.message_id;
|
||||||
var message = session_data.mailstore.getMessageByID(messageid);
|
const message = session_data.mailstore.getMessageByID(messageid);
|
||||||
if (!message) {
|
if (!message) {
|
||||||
mail_end_error("Invalid Message ID");
|
mail_end_error("Invalid Message ID");
|
||||||
} else {
|
} else {
|
||||||
session_data.mailstore.setMessageReadStatus(messageid);
|
session_data.mailstore.setMessageReadStatus(messageid);
|
||||||
var notImplementedAlert = new clientShowAlert({
|
const notImplementedAlert = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
'message': "This feature is not available.",
|
'message': "This feature is not available.",
|
||||||
'buttonlabel1': "Okay",
|
'buttonlabel1': "Okay",
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
var message_snapshot_data = null;
|
let message_snapshot_data = null;
|
||||||
var message_voicemail_data = null;
|
let message_voicemail_data = null;
|
||||||
|
|
||||||
var intro_seen = session_data.mailstore.checkMailIntroSeen();
|
const intro_seen = session_data.mailstore.checkMailIntroSeen();
|
||||||
if (!intro_seen && !request_headers.query.intro_seen) {
|
if (!intro_seen && !request_headers.query.intro_seen) {
|
||||||
// user is trying to bypass the intro screen
|
// user is trying to bypass the intro screen
|
||||||
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail?came-from=" + encodeURIComponent(request_headers.request_url);
|
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail?came-from=" + encodeURIComponent(request_headers.request_url);
|
||||||
} else if (request_headers.query.clear == "true") {
|
} else if (request_headers.query.clear == "true") {
|
||||||
|
let gourl;
|
||||||
if (request_headers.Referer)
|
if (request_headers.Referer)
|
||||||
gourl = request_headers.Referer.replace(/[\?\&]clear\=true/, '');
|
gourl = request_headers.Referer.replace(/[\?\&]clear\=true/, '');
|
||||||
else
|
else
|
||||||
@@ -30,8 +31,8 @@ wtv-expire-all: wtv-mail:/listmail
|
|||||||
wtv-expire-all: wtv-mail:/sendmail
|
wtv-expire-all: wtv-mail:/sendmail
|
||||||
Location: ${gourl}`;
|
Location: ${gourl}`;
|
||||||
} else {
|
} else {
|
||||||
var doClientError = function (msg) {
|
const doClientError = function (msg) {
|
||||||
var clientErrorMsg = new clientShowAlert({
|
const clientErrorMsg = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
'message': msg,
|
'message': msg,
|
||||||
'buttonlabel1': "Okay",
|
'buttonlabel1': "Okay",
|
||||||
@@ -42,23 +43,23 @@ Location: ${gourl}`;
|
|||||||
return "200 OK\nwtv-visit: " + clientErrorMsg;
|
return "200 OK\nwtv-visit: " + clientErrorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
var newsgroup = null;
|
let newsgroup = null;
|
||||||
if (wtvshared.parseBool(request_headers.query.discuss)) {
|
if (wtvshared.parseBool(request_headers.query.discuss)) {
|
||||||
newsgroup = request_headers.query.group || request_headers.query.message_to || null;
|
newsgroup = request_headers.query.group || request_headers.query.message_to || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var gourl = "wtv-mail:/sendmail";
|
let gourl = "wtv-mail:/sendmail";
|
||||||
var msg_subject, to_addr, to_name;
|
let msg_subject, to_addr, to_name, pageTitle, article, reply_message;
|
||||||
|
|
||||||
if (newsgroup !== null) {
|
if (newsgroup !== null) {
|
||||||
var to_addr = newsgroup;
|
to_addr = newsgroup;
|
||||||
var pageTitle = "Post to " + newsgroup;
|
pageTitle = "Post to " + newsgroup;
|
||||||
var article = request_headers.query.article || null;
|
article = request_headers.query.article || null;
|
||||||
var gourl = gourl + "?group=" + newsgroup;
|
gourl = gourl + "?group=" + newsgroup;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
var to_addr = request_headers.query.message_to || null;
|
to_addr = request_headers.query.message_to || null;
|
||||||
var pageTitle = "Write an e-mail message";
|
pageTitle = "Write an e-mail message";
|
||||||
if (request_headers.query.message_reply_id) {
|
if (request_headers.query.message_reply_id) {
|
||||||
reply_message = session_data.mailstore.getMessageByID(request_headers.query.message_reply_id);
|
reply_message = session_data.mailstore.getMessageByID(request_headers.query.message_reply_id);
|
||||||
if (reply_message) {
|
if (reply_message) {
|
||||||
@@ -69,16 +70,16 @@ Location: ${gourl}`;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var msg_subject = msg_subject || request_headers.query.message_subject || null;
|
msg_subject = msg_subject || request_headers.query.message_subject || null;
|
||||||
var msg_body = request_headers.query.message_body || null;
|
let msg_body = request_headers.query.message_body || null;
|
||||||
var to_name = to_name || request_headers.query.whatever_webtv_sends_this_as || null;
|
to_name = to_name || request_headers.query.whatever_webtv_sends_this_as || null;
|
||||||
var msg_url = request_headers.query.message_url || null;
|
let msg_url = request_headers.query.message_url || null;
|
||||||
var msg_url_title = request_headers.query.message_title || null;
|
let msg_url_title = request_headers.query.message_title || null;
|
||||||
var no_signature = false;
|
let no_signature = false;
|
||||||
|
|
||||||
|
|
||||||
mail_draft_data = {};
|
let mail_draft_data = {};
|
||||||
mail_draft_attachments = {};
|
let mail_draft_attachments = {};
|
||||||
if (!wtvshared.parseBool(request_headers.query.discuss)) {
|
if (!wtvshared.parseBool(request_headers.query.discuss)) {
|
||||||
mail_draft_data = session_data.getSessionData("mail_draft");
|
mail_draft_data = session_data.getSessionData("mail_draft");
|
||||||
mail_draft_attachments = session_data.getSessionData("mail_draft_attachments") || {};
|
mail_draft_attachments = session_data.getSessionData("mail_draft_attachments") || {};
|
||||||
@@ -124,10 +125,10 @@ Content-Type: audio/wav`;
|
|||||||
data = message_voicemail_data;
|
data = message_voicemail_data;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var username = session_data.getSessionData("subscriber_username");
|
const username = session_data.getSessionData("subscriber_username");
|
||||||
var userdisplayname = wtvshared.htmlEntitize(session_data.getSessionData("subscriber_name"));
|
const userdisplayname = wtvshared.htmlEntitize(session_data.getSessionData("subscriber_name"));
|
||||||
var address = username + "@" + minisrv_config.config.service_name //minisrv_config.config.domain_name
|
const address = username + "@" + minisrv_config.config.service_name //minisrv_config.config.domain_name
|
||||||
var notImplementedAlert = new clientShowAlert({
|
const notImplementedAlert = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
'message': "This feature is not available.",
|
'message': "This feature is not available.",
|
||||||
'buttonlabel1': "Okay",
|
'buttonlabel1': "Okay",
|
||||||
@@ -136,14 +137,14 @@ Content-Type: audio/wav`;
|
|||||||
}).getURL();
|
}).getURL();
|
||||||
|
|
||||||
if ((typeof request_headers.query.sendoff !== 'undefined' && request_headers.query.sendoff != false) || request_headers.query.saveoff || request_headers.query.get_snap || request_headers.query.get_gab) {
|
if ((typeof request_headers.query.sendoff !== 'undefined' && request_headers.query.sendoff != false) || request_headers.query.saveoff || request_headers.query.get_snap || request_headers.query.get_gab) {
|
||||||
var from_addr = address;
|
let from_addr = address;
|
||||||
var signature = session_data.getSessionData("subscriber_signature") || null;
|
const signature = session_data.getSessionData("subscriber_signature") || null;
|
||||||
if (typeof request_headers.query.sendoff !== 'undefined' && request_headers.query.sendoff != false) {
|
if (typeof request_headers.query.sendoff !== 'undefined' && request_headers.query.sendoff != false) {
|
||||||
var attachments = [];
|
const attachments = [];
|
||||||
|
|
||||||
|
|
||||||
if (message_snapshot_data) {
|
if (message_snapshot_data) {
|
||||||
var attachment = {
|
const attachment = {
|
||||||
'mime': 'image/jpeg',
|
'mime': 'image/jpeg',
|
||||||
'filename': 'snapshot.jpg'
|
'filename': 'snapshot.jpg'
|
||||||
}
|
}
|
||||||
@@ -157,7 +158,7 @@ Content-Type: audio/wav`;
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (message_voicemail_data) {
|
if (message_voicemail_data) {
|
||||||
var attachment = {
|
const attachment = {
|
||||||
'mime': 'audio/wav',
|
'mime': 'audio/wav',
|
||||||
'filename': 'voicemail.wav'
|
'filename': 'voicemail.wav'
|
||||||
}
|
}
|
||||||
@@ -171,15 +172,14 @@ Content-Type: audio/wav`;
|
|||||||
attachments.push(attachment);
|
attachments.push(attachment);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("DEBUG sendmail: Before send decision - newsgroup =", newsgroup, "to_addr =", to_addr);
|
|
||||||
if (newsgroup !== null) {
|
if (newsgroup !== null) {
|
||||||
console.log("DEBUG sendmail: Taking newsgroup path");
|
request_is_async = true;
|
||||||
var request_is_async = true;
|
const local_service_name = request_headers.query['discuss-prefix'] || "wtv-news"
|
||||||
var local_service_name = request_headers.query['discuss-prefix'] || "wtv-news"
|
|
||||||
const wtvnews = new WTVNews(minisrv_config, local_service_name);
|
const wtvnews = new WTVNews(minisrv_config, local_service_name);
|
||||||
var service_config = minisrv_config.services[local_service_name];
|
const service_config = minisrv_config.services[local_service_name];
|
||||||
|
let news_headers;
|
||||||
if (wtvnewsserver) {
|
if (wtvnewsserver) {
|
||||||
var tls_options = {
|
const tls_options = {
|
||||||
ca: this.wtvshared.getServiceDep('wtv-news/localserver_ca.pem'),
|
ca: this.wtvshared.getServiceDep('wtv-news/localserver_ca.pem'),
|
||||||
key: this.wtvshared.getServiceDep('wtv-news/localserver_key.pem'),
|
key: this.wtvshared.getServiceDep('wtv-news/localserver_key.pem'),
|
||||||
cert: this.wtvshared.getServiceDep('wtv-news/localserver_cert.pem'),
|
cert: this.wtvshared.getServiceDep('wtv-news/localserver_cert.pem'),
|
||||||
@@ -193,12 +193,10 @@ Content-Type: audio/wav`;
|
|||||||
if (service_config.upstream_auth)
|
if (service_config.upstream_auth)
|
||||||
wtvnews.initializeUsenet(service_config.upstream_address, service_config.upstream_port, service_config.upstream_tls || null, service_config.upstream_auth.username || null, service_config.upstream_auth.password || null);
|
wtvnews.initializeUsenet(service_config.upstream_address, service_config.upstream_port, service_config.upstream_tls || null, service_config.upstream_auth.username || null, service_config.upstream_auth.password || null);
|
||||||
else
|
else
|
||||||
wtvnews.initializeUsenet(service_config.upstream_address, service_configupstream_port, service_config.upstream_tls || null);
|
wtvnews.initializeUsenet(service_config.upstream_address, service_config.upstream_port, service_config.upstream_tls || null);
|
||||||
}
|
}
|
||||||
from_addr = userdisplayname + " <" + from_addr + ">";
|
from_addr = userdisplayname + " <" + from_addr + ">";
|
||||||
news_headers = null;
|
|
||||||
if (signature && signature != "" && !no_signature) {
|
if (signature && signature != "" && !no_signature) {
|
||||||
var signature_tuple = null;
|
|
||||||
if (signature.indexOf('<html>') >= 0) {
|
if (signature.indexOf('<html>') >= 0) {
|
||||||
attachments.push({
|
attachments.push({
|
||||||
"mime": 'text/html',
|
"mime": 'text/html',
|
||||||
@@ -216,7 +214,7 @@ Content-Type: audio/wav`;
|
|||||||
|
|
||||||
if (attachments.length > 0 || msg_body.indexOf('<html>') >= 0) {
|
if (attachments.length > 0 || msg_body.indexOf('<html>') >= 0) {
|
||||||
// usenet attachments
|
// usenet attachments
|
||||||
var tuples = [];
|
let tuples = [];
|
||||||
if (msg_body.indexOf('<html>') >= 0) {
|
if (msg_body.indexOf('<html>') >= 0) {
|
||||||
tuples.push({
|
tuples.push({
|
||||||
"mime": 'text/html',
|
"mime": 'text/html',
|
||||||
@@ -231,9 +229,9 @@ Content-Type: audio/wav`;
|
|||||||
"use_base64": false
|
"use_base64": false
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
if (signature_tuple) tuples.push(signature_tuple);
|
//if (signature_tuple) tuples.push(signature_tuple);
|
||||||
attachments.forEach((attachment) => {
|
attachments.forEach((attachment) => {
|
||||||
var tuple = {};
|
const tuple = {};
|
||||||
tuple.mime = attachment.mime;
|
tuple.mime = attachment.mime;
|
||||||
tuple.content = attachment.content;
|
tuple.content = attachment.content;
|
||||||
tuple.use_base64 = (typeof attachment.use_base64 === 'boolean') ? attachment.use_base64 : true;
|
tuple.use_base64 = (typeof attachment.use_base64 === 'boolean') ? attachment.use_base64 : true;
|
||||||
@@ -241,7 +239,7 @@ Content-Type: audio/wav`;
|
|||||||
tuple.filename = attachment.filename || null;
|
tuple.filename = attachment.filename || null;
|
||||||
tuples.push(tuple);
|
tuples.push(tuple);
|
||||||
});
|
});
|
||||||
var multipart_data = wtvmime.generateMultipartMIME(tuples);
|
const multipart_data = wtvmime.generateMultipartMIME(tuples);
|
||||||
news_headers = {
|
news_headers = {
|
||||||
"Content-Type": multipart_data.content_type,
|
"Content-Type": multipart_data.content_type,
|
||||||
"MIME-Version": multipart_data.mime_version,
|
"MIME-Version": multipart_data.mime_version,
|
||||||
@@ -259,16 +257,16 @@ wtv-expire-all wtv-mail:/sendmail
|
|||||||
Location: wtv-news:/news?group=${newsgroup}`;
|
Location: wtv-news:/news?group=${newsgroup}`;
|
||||||
sendToClient(socket, headers, '');
|
sendToClient(socket, headers, '');
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
var err = this.wtvshared.doErrorPage(500, null, e.toString())
|
const err = this.wtvshared.doErrorPage(500, null, e.toString())
|
||||||
sendToClient(socket, err[0], err[1]);
|
sendToClient(socket, err[0], err[1]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.log("DEBUG sendmail: Taking email path with to_addr =", to_addr);
|
console.log("DEBUG sendmail: Taking email path with to_addr =", to_addr);
|
||||||
var messagereturn = session_data.mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments, msg_url, msg_url_title);
|
const messagereturn = session_data.mailstore.sendMessageToAddr(from_addr, to_addr, msg_body, msg_subject, userdisplayname, to_name, signature, attachments, msg_url, msg_url_title);
|
||||||
if (messagereturn !== true) {
|
if (messagereturn !== true) {
|
||||||
var errpage = wtvshared.doErrorPage(400, messagereturn);
|
const errpage = wtvshared.doErrorPage(400, messagereturn);
|
||||||
headers = errpage[0];
|
headers = errpage[0];
|
||||||
data = errpage[1];
|
data = errpage[1];
|
||||||
} else {
|
} else {
|
||||||
@@ -282,7 +280,7 @@ Location: wtv-mail:/listmail`;
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (request_headers.query.saveoff) {
|
} else if (request_headers.query.saveoff) {
|
||||||
var mail_draft_data = {
|
mail_draft_data = {
|
||||||
to_addr: to_addr,
|
to_addr: to_addr,
|
||||||
msg_subject: msg_subject,
|
msg_subject: msg_subject,
|
||||||
msg_body: msg_body,
|
msg_body: msg_body,
|
||||||
@@ -300,7 +298,7 @@ wtv-expire-all: wtv-mail:/sendmail`;
|
|||||||
|
|
||||||
headers = `200 OK
|
headers = `200 OK
|
||||||
Content-type: text/html`;
|
Content-type: text/html`;
|
||||||
var mail_draft_data = session_data.getSessionData((newsgroup) ? "usenet_draft_attachments" : "mail_draft_attachments") || {};
|
mail_draft_data = session_data.getSessionData((newsgroup) ? "usenet_draft_attachments" : "mail_draft_attachments") || {};
|
||||||
if (request_headers.query.snapping == "false") {
|
if (request_headers.query.snapping == "false") {
|
||||||
headers += "\nwtv-expire-all: cache:snapshot.jpg";
|
headers += "\nwtv-expire-all: cache:snapshot.jpg";
|
||||||
if (mail_draft_data.message_snapshot_data) mail_draft_data.message_snapshot_data = null;
|
if (mail_draft_data.message_snapshot_data) mail_draft_data.message_snapshot_data = null;
|
||||||
@@ -322,7 +320,7 @@ Content-type: text/html`;
|
|||||||
mail_draft_data.message_voicemail_data = request_headers.query.message_voicemail_data
|
mail_draft_data.message_voicemail_data = request_headers.query.message_voicemail_data
|
||||||
session_data.setSessionData((newsgroup) ? "usenet_draft_attachments" : "mail_draft_attachments", mail_draft_data);
|
session_data.setSessionData((newsgroup) ? "usenet_draft_attachments" : "mail_draft_attachments", mail_draft_data);
|
||||||
}
|
}
|
||||||
var message_colors = null;
|
let message_colors = null;
|
||||||
if (no_signature) message_colors = session_data.mailstore.getSignatureColors(null, true);
|
if (no_signature) message_colors = session_data.mailstore.getSignatureColors(null, true);
|
||||||
else message_colors = session_data.mailstore.getSignatureColors(session_data.getSessionData("subscriber_signature"), true);
|
else message_colors = session_data.mailstore.getSignatureColors(session_data.getSessionData("subscriber_signature"), true);
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
|
|
||||||
headers = `200 OK
|
headers = `200 OK
|
||||||
Content-type: text/plain
|
Content-type: text/plain
|
||||||
minisrv-no-mail-count: true`
|
minisrv-no-mail-count: true`
|
||||||
|
|
||||||
var fail = '0';
|
const fail = '0';
|
||||||
var ok = '1';
|
const ok = '1';
|
||||||
|
|
||||||
// TODO: logic to check if account exists
|
// TODO: logic to check if account exists
|
||||||
// All this does is some sanity checks for now
|
// All this does is some sanity checks for now
|
||||||
// but does not verify the account exists
|
// but does not verify the account exists
|
||||||
|
|
||||||
if (request_headers.query.address) {
|
if (request_headers.query.address) {
|
||||||
var address_split = request_headers.query.address.split("@");
|
const address_split = request_headers.query.address.split("@");
|
||||||
var domain = address_split[1];
|
const domain = address_split[1];
|
||||||
if (domain != "escargot.chat" && domain != "escargot.live") data = fail
|
if (domain != "escargot.chat" && domain != "escargot.live") data = fail
|
||||||
else data = ok;
|
else data = ok;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
var minisrv_service_file = true;
|
const minisrv_service_file = true;
|
||||||
|
|
||||||
headers = `200 OK
|
headers = `200 OK
|
||||||
Content-Type: text/html`;
|
Content-Type: text/html`;
|
||||||
|
|||||||
@@ -139,12 +139,6 @@ function checkScopeErrors(file) {
|
|||||||
// Check if either service name exists and is privileged
|
// Check if either service name exists and is privileged
|
||||||
const service = config.services[serviceNameWithPrefix] || config.services[serviceNameWithoutPrefix];
|
const service = config.services[serviceNameWithPrefix] || config.services[serviceNameWithoutPrefix];
|
||||||
|
|
||||||
if (serviceName === "wtv-news") {
|
|
||||||
eslintConfig.globals = {
|
|
||||||
...eslintConfig.globals,
|
|
||||||
"wtvnewsserver": "readonly"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (service && service.privileged === true) {
|
if (service && service.privileged === true) {
|
||||||
// Add additional globals for privileged services
|
// Add additional globals for privileged services
|
||||||
@@ -161,6 +155,9 @@ function checkScopeErrors(file) {
|
|||||||
if (service.modules) {
|
if (service.modules) {
|
||||||
for (const moduleName of service.modules) {
|
for (const moduleName of service.modules) {
|
||||||
eslintConfig.globals[moduleName] = "readonly";
|
eslintConfig.globals[moduleName] = "readonly";
|
||||||
|
if (moduleName === "WTVNews") {
|
||||||
|
eslintConfig.globals["wtvnewsserver"] = "readonly";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user