clacks 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|