clacks 1.1.0 → 1.1.1
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/clacks/service.rb +27 -19
- data/lib/clacks/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8266944afd67107ca0d77a1ddb825c8e3e720ddc
|
4
|
+
data.tar.gz: e01a4bb50db6e6f24586e9bd86502375035e4001
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b217905633b1d4f0999004d849cb5dd752d3eb3c15c33800e81a2d4484759b2e909a4b3b63e5f87932fd7cb20bc68e566a4292e7afba69f794d421f5f1681e64
|
7
|
+
data.tar.gz: 3cc3bfd8c94890e409f20421a00ddf9aa16568ea2c6994c58c6e87808c998ccb772113abcc946b6d90a0e517e198c73bde462fe7490acec5ecfc52688ca8a41a
|
data/lib/clacks/service.rb
CHANGED
@@ -10,17 +10,22 @@ module Clacks
|
|
10
10
|
# IMAP server timeout: typically after 30 minutes with no activity.
|
11
11
|
# NAT Gateway timeout: typically after 15 minutes with an idle connection.
|
12
12
|
# The solution to this is for the IMAP client to issue a NOOP (No Operation) command
|
13
|
-
# at intervals, typically every
|
14
|
-
IMAP_NOOP_SLEEP =
|
13
|
+
# at intervals, typically every 12 minutes.
|
14
|
+
IMAP_NOOP_SLEEP = 12 * 60 # 12 minutes
|
15
15
|
|
16
16
|
def run
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
begin
|
18
|
+
Clacks.logger.info "Clacks v#{Clacks::VERSION} started"
|
19
|
+
if Clacks.config[:pop3]
|
20
|
+
run_pop3
|
21
|
+
elsif Clacks.config[:imap]
|
22
|
+
run_imap
|
23
|
+
else
|
24
|
+
raise "Either a POP3 or an IMAP server must be configured"
|
25
|
+
end
|
26
|
+
rescue Exception => e
|
27
|
+
Clacks.logger.error("#{e.message} (#{e.class})\n#{(e.backtrace || []).join("\n")}")
|
28
|
+
raise e
|
24
29
|
end
|
25
30
|
end
|
26
31
|
|
@@ -103,7 +108,7 @@ module Clacks
|
|
103
108
|
# reconnect in next loop
|
104
109
|
rescue Net::IMAP::Error, IOError => e
|
105
110
|
# OK: reconnect in next loop
|
106
|
-
rescue => e
|
111
|
+
rescue StandardError => e
|
107
112
|
Clacks.logger.error("#{e.message} (#{e.class})\n#{(e.backtrace || []).join("\n")}")
|
108
113
|
sleep(5) unless stopping?
|
109
114
|
end
|
@@ -112,14 +117,17 @@ module Clacks
|
|
112
117
|
end
|
113
118
|
|
114
119
|
def imap_nooper
|
115
|
-
|
120
|
+
Thread.new do
|
116
121
|
loop do
|
117
122
|
begin
|
118
123
|
sleep IMAP_NOOP_SLEEP
|
119
124
|
@imap.idle_done
|
120
125
|
@imap.noop
|
121
|
-
rescue
|
126
|
+
rescue StandardError
|
122
127
|
# noop
|
128
|
+
rescue Exception => e
|
129
|
+
Clacks.logger.error("#{e.message} (#{e.class})\n#{(e.backtrace || []).join("\n")}")
|
130
|
+
raise e
|
123
131
|
end
|
124
132
|
end
|
125
133
|
end
|
@@ -147,9 +155,9 @@ module Clacks
|
|
147
155
|
mail = Mail.new(source)
|
148
156
|
mail.mark_for_delete = true if delete_after_find
|
149
157
|
Clacks.config[:on_mail].call(mail)
|
150
|
-
rescue
|
151
|
-
Clacks.logger.
|
152
|
-
Clacks.logger.
|
158
|
+
rescue StandardError => e
|
159
|
+
Clacks.logger.error(e.message)
|
160
|
+
Clacks.logger.error(e.backtrace)
|
153
161
|
end
|
154
162
|
begin
|
155
163
|
imap.uid_copy(uid, options[:archivebox]) if options[:archivebox]
|
@@ -157,7 +165,7 @@ module Clacks
|
|
157
165
|
expunge = true
|
158
166
|
imap.uid_store(uid, "+FLAGS", [Net::IMAP::DELETED])
|
159
167
|
end
|
160
|
-
rescue
|
168
|
+
rescue StandardError => e
|
161
169
|
Clacks.logger.error(e.message)
|
162
170
|
end
|
163
171
|
processed += 1
|
@@ -185,9 +193,9 @@ module Clacks
|
|
185
193
|
else
|
186
194
|
begin
|
187
195
|
on_mail.call(mail)
|
188
|
-
rescue
|
189
|
-
Clacks.logger.
|
190
|
-
Clacks.logger.
|
196
|
+
rescue StandardError => e
|
197
|
+
Clacks.logger.error(e.message)
|
198
|
+
Clacks.logger.error(e.backtrace)
|
191
199
|
end
|
192
200
|
end
|
193
201
|
end
|
data/lib/clacks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clacks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ITRP
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mail
|