wtv-news fixes

This commit is contained in:
zefie
2022-11-03 13:25:59 -04:00
parent 1184330295
commit 37fcc6aff3
2 changed files with 12 additions and 4 deletions

View File

@@ -252,7 +252,6 @@ ${page_start}-${page_end}
<td height=6> <td height=6>
</TABLE>` </TABLE>`
if (NGCount > 0) { if (NGCount > 0) {
Object.keys(messages).forEach(function (k) { Object.keys(messages).forEach(function (k) {
var message = messages[k].article; var message = messages[k].article;
var has_relation = (messages[k].relation !== null) ? true : false; var has_relation = (messages[k].relation !== null) ? true : false;
@@ -335,6 +334,7 @@ wtv-expire-all: wtv-news:/news?group=${group}&article=`;
var message_body = message.text; var message_body = message.text;
var attachments = null; var attachments = null;
var signature_index = null; var signature_index = null;
wtvnews.debug(message);
if (message.attachments) attachments = message.attachments; if (message.attachments) attachments = message.attachments;
if (attachments) { if (attachments) {
if (Object.keys(attachments).length > 0) { if (Object.keys(attachments).length > 0) {
@@ -345,7 +345,7 @@ wtv-expire-all: wtv-news:/news?group=${group}&article=`;
return false; return false;
} }
}); });
attachments.splice(signature_index, 1); if (signature_index) attachments.splice(signature_index, 1);
} }
} }
if (signature) message_colors = session_data.mailstore.getSignatureColors(signature); if (signature) message_colors = session_data.mailstore.getSignatureColors(signature);

View File

@@ -9,12 +9,14 @@ class WTVNews {
username = null; username = null;
password = null; password = null;
posting_allowed = true; posting_allowed = true;
debug = null;
constructor(minisrv_config, service_name) { constructor(minisrv_config, service_name) {
this.minisrv_config = minisrv_config; this.minisrv_config = minisrv_config;
this.service_name = service_name; this.service_name = service_name;
const { WTVShared } = require("./WTVShared.js"); const { WTVShared } = require("./WTVShared.js");
this.wtvshared = new WTVShared(minisrv_config); this.wtvshared = new WTVShared(minisrv_config);
this.debug = require('debug')('WTVNews');
} }
initializeUsenet(host, port = 119, tls_options = null, username = null, password = null) { initializeUsenet(host, port = 119, tls_options = null, username = null, password = null) {
@@ -393,17 +395,20 @@ class WTVNews {
var section = element.split("\n"); var section = element.split("\n");
attachments[i] = {}; attachments[i] = {};
section.forEach((line) => { section.forEach((line) => {
this.debug('section_type', section_type, 'line', line);
var section_header_match = line.match(/^Content\-/i) var section_header_match = line.match(/^Content\-/i)
if (section_header_match) { if (section_header_match) {
var section_match = line.match(/^Content\-Type\: (.+)\;/i) var section_match = line.match(/^Content\-Type\: (.+)\;/i)
if (section_match) { if (section_match) {
this.debug('section_match', section_match)
section_type = section_match[1];
if (section_match[1].match("text/plain")) { if (section_match[1].match("text/plain")) {
section_type = section_match[1].match("text/plain")[1];
message_type = section_type; message_type = section_type;
} else { } else {
section_type = section_match[1]; section_type = section_match[1];
attachments[i].content_type = section_match[1] attachments[i].content_type = section_match[1]
} }
this.debug('section_type', section_type)
} }
section_match = line.match(/^Content\-Disposition\: (.+)\;/i) section_match = line.match(/^Content\-Disposition\: (.+)\;/i)
if (section_match) { if (section_match) {
@@ -476,6 +481,9 @@ class WTVNews {
mainref = searchart.messageId; mainref = searchart.messageId;
message_relations[mainref].push({ "messageId": messageId, "index": k }); message_relations[mainref].push({ "messageId": messageId, "index": k });
found = true; found = true;
} else {
// no relation, missing reference, add as root
message_id_roots.push({ "messageId": messageId, "index": k });
} }
}); });
} }
@@ -508,7 +516,7 @@ class WTVNews {
// sort relations by date // sort relations by date
var article = messages[message_relations[message_id_roots[k].messageId][j].index]; var article = messages[message_relations[message_id_roots[k].messageId][j].index];
var article_date = Date.parse(article.headers.DATE); var article_date = Date.parse(article.headers.DATE);
relations.push({ "article": article, "relation": message_id_roots[k].messageId, "date": article_date }) relations.push({ "article": article, "relation": message_id_roots[k].messageId || null, "date": article_date })
}); });
relations.sort((a, b) => { return (a.date - b.date) }); relations.sort((a, b) => { return (a.date - b.date) });
Object.keys(relations).forEach((j) => { Object.keys(relations).forEach((j) => {