我正在尝试使用此conversationThreading-js代码将电子邮件分组到线程中,但文档很少和/或我无法理解它。有没有人在使用此代码之前或使用它所基于的JWZ email conversation threading algorithm?
这是我到目前为止的地方:
mbox
messageId
,inReplyTo
和references
。 也许我误解了结果应该是什么?或者我只是“做错了”?我的最终目标是能够使用D3在某种有向图中显示结果线程 - 但如果我无法正确设置数据,那就不会发生。
function makeThread(emails) {
var thread = jwz.messageThread().thread(emails.map(
function (message) {
return jwz.message(message.subject, message.messageId, message.references);
}
));
console.log('thread',thread);
}
答案 0 :(得分:1)
目前还不清楚它是如何工作的,但我设法写了一些打印“线程树”的代码:
function recurse(node, level) {
level = level || 0;
let prefix = '\t'.repeat(level);
(node.children || []).forEach(function(child) {
child.children = child.children || [];
console.log(prefix, level ? '' : '-', child.message ? child.message.subject : '??', `[${ child.children.length }]`);
return recurse(child, level + 1);
});
}
recurse(jwz.messageThread().thread(messages));
(messages
是jwz.message()
个对象的数组,类似于您创建它的方式)