From: William Morgan Date: Mon, 24 Aug 2009 23:21:22 +0000 (-0400) Subject: Merge branch 'xapian-updates' into next X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=afeaf4393206cce3f4b91d40ec50fae2ba0e6f2f;p=sup Merge branch 'xapian-updates' into next --- afeaf4393206cce3f4b91d40ec50fae2ba0e6f2f diff --cc lib/sup/xapian_index.rb index 85f6ef0,7e65a70..c260728 --- a/lib/sup/xapian_index.rb +++ b/lib/sup/xapian_index.rb @@@ -71,31 -71,19 +71,23 @@@ class XapianIndex < BaseInde source = SourceManager[entry[:source_id]] raise "invalid source #{entry[:source_id]}" unless source - mk_addrs = lambda { |l| l.map { |e,n| "#{n} <#{e}>" } * ', ' } - mk_refs = lambda { |l| l.map { |r| "<#{r}>" } * ' ' } - fake_header = { - 'message-id' => entry[:message_id], - 'date' => Time.at(entry[:date]), - 'subject' => entry[:subject], - 'from' => mk_addrs[[entry[:from]]], - 'to' => mk_addrs[entry[:to]], - 'cc' => mk_addrs[entry[:cc]], - 'bcc' => mk_addrs[entry[:bcc]], - 'reply-tos' => mk_refs[entry[:replytos]], - 'references' => mk_refs[entry[:refs]], - } - - m = Message.new :source => source, :source_info => entry[:source_info], - :labels => entry[:labels], - :snippet => entry[:snippet] - m.parse_header fake_header - m + m = Message.new :source => source, :source_info => entry[:source_info], + :labels => entry[:labels], :snippet => entry[:snippet] + + mk_person = lambda { |x| Person.new(*x.reverse!) } + entry[:from] = mk_person[entry[:from]] + entry[:to].map!(&mk_person) + entry[:cc].map!(&mk_person) + entry[:bcc].map!(&mk_person) + + m.load_from_index! entry + m end + def add_message m; sync_message m end + def update_message m; sync_message m end + def update_message_state m; sync_message m end + def sync_message m, opts={} entry = synchronize { get_entry m.id } snippet = m.snippet