我正在尝试使用这个conversationThreading-js将电子邮件分组到线程中的代码,但文档很少和/或我无法理解它。有没有人以前使用过这段代码或使用过 JWZ email conversation threading algorithm它是基于什么?
这就是我目前所处的位置:
- 使用 Electron 我使用 node-mbox 加载并解析本地
mbox
和 node-mailparser - 我构建了一个 JavaScript 对象数组,其中包含
messageId
、inReplyTo
和references
键值对。 - 使用 test file for this lib 中的示例代码我尝试构建线程,但显然我做得不对。我没有收到任何错误,但也没有收到任何线程(并且我的测试 mbox 确实包含线程对话)。
也许我误解了结果应该是什么?或者我只是“做错了”?我的最终目标是能够使用 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);
}
<小时/>
最佳答案
目前还不清楚它是如何工作的,但我设法编写了一些打印“线程树”的代码:
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()
对象的数组,与创建它的方式类似)
关于javascript - 谁能解释一下如何使用对话Threading-js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376112/