commit c525f80342e835efb1dc830cde24b4a740c524ca
parent c3d6da56640afa7b1da783e5d1cfaf7505cf7206
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Tue, 30 Mar 2010 23:50:07 -0700
remove add_new_messages and fix internal sources
Diffstat:
5 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/lib/sup/connection.rb b/lib/sup/connection.rb
@@ -49,7 +49,10 @@ class Connection
SentManager.source.store_message Time.now, "test@example.com" do |io|
io.write raw
end
- PollManager.add_new_messages SentManager.source, labels, []
+ PollManager.poll_from SentManager.source do |sym,m,old_m|
+ next unless sym == :add
+ m.labels = labels
+ end
nil
end
end
diff --git a/lib/sup/draft.rb b/lib/sup/draft.rb
@@ -17,7 +17,7 @@ class DraftManager
offset = @source.gen_offset
fn = @source.fn_for_offset offset
File.open(fn, "w") { |f| yield f }
- PollManager.add_new_messages @source
+ PollManager.poll_from @source
end
def discard m
@@ -37,6 +37,7 @@ class DraftLoader < Source
Dir.mkdir dir unless File.exists? dir
super DraftManager.source_name, true, false
@dir = dir
+ @cur_offset = 0
end
def id; DraftManager.source_id; end
@@ -46,9 +47,12 @@ class DraftLoader < Source
def poll
ids = get_ids
ids.each do |id|
- if id >= cur_offset
- self.cur_offset = id + 1
- yield :add, id, [:draft, :inbox]
+ if id >= @cur_offset
+ @cur_offset = id + 1
+ yield :add,
+ :info => id,
+ :labels => [:draft, :inbox],
+ :progress => 0.0
end
end
end
diff --git a/lib/sup/mbox.rb b/lib/sup/mbox.rb
@@ -121,13 +121,17 @@ class MBox < Source
0.0
end
+ def default_labels
+ [:inbox, :unread]
+ end
+
def poll
offset = first_new_message
end_offset = File.size @f
while offset and offset < end_offset
yield :add,
:info => offset,
- :labels => (labels + [:inbox, :unread]),
+ :labels => (labels + default_labels),
:progress => 0.0
offset = next_offset offset
end
diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb
@@ -190,15 +190,6 @@ EOS
end
end
- def add_new_messages source, add_labels, remove_labels
- each_message_from(source) do |action,m|
- next unless action == :add
- remove_labels.each { |l| m.remove_label l }
- add_labels.each { |l| m.add_label l }
- add_new_message m
- end
- end
-
def handle_idle_update sender, idle_since; @should_clear_running_totals = false; end
def handle_unidle_update sender, idle_since; @should_clear_running_totals = true; clear_running_totals; end
def clear_running_totals; @running_totals = {:num => 0, :numi => 0, :loaded_labels => Set.new}; end
diff --git a/lib/sup/sent.rb b/lib/sup/sent.rb
@@ -26,7 +26,7 @@ class SentManager
def write_sent_message date, from_email, &block
@source.store_message date, from_email, &block
- PollManager.add_new_messages @sources, [:sent], [:unread]
+ PollManager.poll_from @source
end
end
@@ -46,6 +46,7 @@ class SentLoader < MBox
def id; 9998; end
def labels; [:inbox, :sent]; end
+ def default_labels; []; end
def read?; true; end
end