2017-04-12 14 views
1

私はこのconversationThreading-jsコードを電子メールをスレッドにグループ化するのに使用しようとしていますが、ドキュメントが少なくてすみません、またはわかりません。誰もこれの前にこのビットのコードを使用したか、それが基づいているJWZ email conversation threading algorithmを使用しましたか?誰でもconversationThreading-jsの使い方を説明できますか?

これは私がこれまでのところだところです、私はmessageIdのキーと値のペアを持っているJavaScriptのオブジェクトの配列を構築

電子I負荷を使用して
  1. node-mboxを使用してローカルmboxを解析し、node-mailparser
  2. inReplyToおよびreferences
  3. 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); 
     } 

enter image description here

答えて

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()オブジェクトの配列。作成方法と似ています)

関連する問題