heathrow 0.7.1 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/heathrow/sources/maildir.rb +10 -2
- data/lib/heathrow/ui/application.rb +11 -10
- data/lib/heathrow/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cbe8be982ab3300b591a24bdba7bb67c9feff58167a7785fb288a4b62d558f46
|
|
4
|
+
data.tar.gz: 513f905dff1e8a9e74b87488a1fa5b007d3a76e26287d7643961ea2b1b0b2268
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 29e42a3922e7dfb70188c3bc03345812ccb1a7a21c992384e1b50938a00418ecb6bdba009ba30d0020960b354f144b0ac1a9cc18910b2c2e775c0137a7f68c61
|
|
7
|
+
data.tar.gz: 3a7a0e541c490c8d783f679d6be4bcab6dabe703041ea2620d95b7756ec74cc53d9bfee851e15f3863685168f8c33f1c1b227ecf5e1aea784681d4b12cfb6f16
|
|
@@ -170,9 +170,17 @@ module Heathrow
|
|
|
170
170
|
changed_base_ids.each do |base_id|
|
|
171
171
|
flags = self.class.parse_maildir_flags(disk_files[base_id])
|
|
172
172
|
db_row = db_index[base_id]
|
|
173
|
-
|
|
173
|
+
# For replied: DB is authoritative. If DB says replied but disk
|
|
174
|
+
# doesn't have R flag, add it to disk rather than clearing DB.
|
|
175
|
+
disk_replied = flags[:replied]
|
|
176
|
+
db_replied = db_row[:replied] == 1
|
|
177
|
+
if db_replied && !disk_replied
|
|
178
|
+
rename_with_flag(disk_files[base_id], 'R', add: true)
|
|
179
|
+
disk_replied = true
|
|
180
|
+
end
|
|
181
|
+
if flags[:seen] != (db_row[:read] == 1) || flags[:flagged] != (db_row[:starred] == 1) || disk_replied != db_replied
|
|
174
182
|
db.execute("UPDATE messages SET read = ?, starred = ?, replied = ? WHERE id = ?",
|
|
175
|
-
flags[:seen] ? 1 : 0, flags[:flagged] ? 1 : 0,
|
|
183
|
+
flags[:seen] ? 1 : 0, flags[:flagged] ? 1 : 0, disk_replied ? 1 : 0, db_row[:id])
|
|
176
184
|
end
|
|
177
185
|
# Update external_id and metadata if filename changed
|
|
178
186
|
current_filename = File.basename(disk_files[base_id])
|
|
@@ -1979,28 +1979,28 @@ module Heathrow
|
|
|
1979
1979
|
end
|
|
1980
1980
|
else
|
|
1981
1981
|
# Regular message display
|
|
1982
|
-
header << "From: #{msg['sender']}".fg(
|
|
1982
|
+
header << "From: #{msg['sender']}".fg(2) if msg['sender']
|
|
1983
1983
|
# Show recipients (To field)
|
|
1984
1984
|
to = msg['recipients'] || msg['recipient']
|
|
1985
1985
|
if to
|
|
1986
1986
|
to_list = to.is_a?(String) ? (JSON.parse(to) rescue [to]) : to
|
|
1987
1987
|
to_str = to_list.is_a?(Array) ? to_list.join(', ') : to_list.to_s
|
|
1988
|
-
header << "To: #{to_str}".fg(
|
|
1988
|
+
header << "To: #{to_str}".fg(2) unless to_str.empty?
|
|
1989
1989
|
end
|
|
1990
1990
|
# Show CC recipients
|
|
1991
1991
|
cc = msg['cc']
|
|
1992
1992
|
if cc
|
|
1993
1993
|
cc_list = cc.is_a?(String) ? (JSON.parse(cc) rescue [cc]) : cc
|
|
1994
1994
|
cc_str = cc_list.is_a?(Array) ? cc_list.join(', ') : cc_list.to_s
|
|
1995
|
-
header << "Cc: #{cc_str}".fg(
|
|
1995
|
+
header << "Cc: #{cc_str}".fg(2) unless cc_str.empty?
|
|
1996
1996
|
end
|
|
1997
1997
|
# For weechat, show channel name from metadata instead of content preview
|
|
1998
1998
|
meta = msg['metadata']
|
|
1999
1999
|
meta = JSON.parse(meta) if meta.is_a?(String) rescue nil
|
|
2000
2000
|
if meta.is_a?(Hash) && meta['channel_name']
|
|
2001
|
-
header << "Subject: #{meta['channel_name']}".b.fg(
|
|
2001
|
+
header << "Subject: #{meta['channel_name']}".b.fg(1)
|
|
2002
2002
|
elsif msg['subject']
|
|
2003
|
-
header << "Subject: #{msg['subject']}".b.fg(
|
|
2003
|
+
header << "Subject: #{msg['subject']}".b.fg(1)
|
|
2004
2004
|
end
|
|
2005
2005
|
end
|
|
2006
2006
|
|
|
@@ -5688,14 +5688,14 @@ module Heathrow
|
|
|
5688
5688
|
msg += " (#{composed[:attachments].size} attachment(s))"
|
|
5689
5689
|
end
|
|
5690
5690
|
set_feedback(msg, 156, 3)
|
|
5691
|
+
render_left_pane if orig_id
|
|
5691
5692
|
else
|
|
5692
5693
|
set_feedback(result[:message], 196, 4)
|
|
5693
5694
|
end
|
|
5694
5695
|
rescue => e
|
|
5695
5696
|
set_feedback("Send error: #{e.message}", 196, 4)
|
|
5696
|
-
|
|
5697
|
-
|
|
5698
|
-
end
|
|
5697
|
+
File.open('/tmp/heathrow_debug.log', 'a') { |f| f.puts "#{Time.now} send_composed_message error: #{e.message}\n#{e.backtrace.first(5).join("\n")}" }
|
|
5698
|
+
|
|
5699
5699
|
end
|
|
5700
5700
|
end
|
|
5701
5701
|
end
|
|
@@ -7674,8 +7674,9 @@ Required: URL, optional CSS selector
|
|
|
7674
7674
|
def colorize_email_content(content)
|
|
7675
7675
|
quote_colors = [theme[:quote1] || 114, theme[:quote2] || 180,
|
|
7676
7676
|
theme[:quote3] || 139, theme[:quote4] || 109]
|
|
7677
|
-
sig_color = theme[:sig] ||
|
|
7678
|
-
link_color = theme[:
|
|
7677
|
+
sig_color = theme[:sig] || 5 # magenta (vim PreProc)
|
|
7678
|
+
link_color = theme[:link] || 4 # blue (vim String)
|
|
7679
|
+
email_color = theme[:email] || 5 # magenta (vim Special)
|
|
7679
7680
|
in_signature = false
|
|
7680
7681
|
|
|
7681
7682
|
content.lines.map do |line|
|
data/lib/heathrow/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: heathrow
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Geir Isene
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-03-
|
|
12
|
+
date: 2026-03-18 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rcurses
|