omah 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/omah.rb +76 -76
  5. metadata +4 -24
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d06eb4457018bb8014de125b696636a9482903275d61989f0c638e67324eb7b
4
- data.tar.gz: ee80906ff711cf99a89785f78ef9d97de4074d187ddebbe008cd76f04a32be80
3
+ metadata.gz: 5775bda4b445e69339cecb256cb6535d64a2c82e00102a56020a45d3c4baad59
4
+ data.tar.gz: 426d302bd522404ed6fadcd9fedede85037e02d490198f2059c3174b657993e0
5
5
  SHA512:
6
- metadata.gz: 1c112dbc1d4b9086fc18f74392db282a23b4e5762454bb01d1f1ea9100e3e6b2fcb7dcedacc279d30819f10ab1e48c72130e56057028bbdd2db65c40dfae549f
7
- data.tar.gz: f54bae7520efefd38c0a1141ce29bef6517515dc16eca4c784367064758a9e5fa8a6a11de9dcf4277e20cb0b62f8a79689b3b01822584e3e0c5e423e086af6d4
6
+ metadata.gz: d3d9080cb5c4f92bbbd1990b1a65b25efc3a87a89847aa5c64809cbb943ec17995080793140873b4b5537f9ab118a6021627b1d114829de1e736f96390a81c1d
7
+ data.tar.gz: 86e1c0f6c3e8271d3cdc8ec26b665f5f91ab8b30478d3c8b8e2ff90765d56d524106cfb3d250fca01374c8c9b553deeaa8afcfc2c5c608b235049ab1d39f6f11
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/omah.rb CHANGED
@@ -3,7 +3,6 @@
3
3
  # file: omah.rb
4
4
  # title: Offline Mail Helper
5
5
 
6
- require 'zip'
7
6
  require 'nokorexi'
8
7
  require 'dynarex-daily'
9
8
  require 'novowels'
@@ -49,7 +48,7 @@ class Omah
49
48
 
50
49
  FileX.chdir @filepath_user
51
50
 
52
- dailyfile = 'dynarexdaily.xml'
51
+ dailyfile = File.join(@filepath_user, 'dynarexdaily.xml')
53
52
 
54
53
  x = if FileX.exists? dailyfile then dailyfile
55
54
 
@@ -57,18 +56,20 @@ class Omah
57
56
 
58
57
  'messages[date, prev_date, next_date]/message(msg_id, tags, from, ' + \
59
58
  'to, subject, date, txt_filepath, html_filepath, attachment1, ' + \
60
- 'attachment2, attachment3)'
59
+ 'attachment2, attachment3, attachments)'
61
60
 
62
61
  end
63
62
 
64
63
  puts 'Omah::initialize before DynarexDaily' if @debug
65
- @dd = DynarexDaily.new x, dir_archive: :yearly
64
+ @dd = DynarexDaily.new x, dir_archive: :yearly, debug: @debug
66
65
  puts 'Omah::initialize after DynarexDaily' if @debug
67
66
  # is it a new day?
68
67
 
69
68
  if @dd.records.empty? then
70
69
 
71
- date_yesterday = (Date.today - 1).strftime("%Y/%b/%d").downcase
70
+ date_yesterday = File.join(@filepath_user,
71
+ (Date.today - 1).strftime("%Y/%b/%d").downcase)
72
+
72
73
  @dd.prev_date = File.join(@webpath_user, date_yesterday)
73
74
 
74
75
  # add the next_day field value to the previous day file
@@ -110,58 +111,60 @@ class Omah
110
111
 
111
112
  def store(messages)
112
113
 
113
- messages.each.with_index do |msg,i|
114
-
115
- puts "i: %d msg: %s" % [i, msg]
116
- subject = msg[:subject] || ''
114
+ messages.each.with_index do |x,i|
115
+
116
+ email, msg = x
117
117
 
118
- title = subject.gsub(/\W+/,'-')[0,30].sub(/^-/,'').sub(/-$/,'')
118
+ begin
119
+
120
+ puts "i: %d msg: %s" % [i, msg] if @debug
121
+ subject = msg[:subject] || ''
122
+
123
+ title = subject.gsub(/\W+/,'-')[0,30].sub(/^-/,'').sub(/-$/,'')
119
124
 
120
- a = @dd.all.select {|x| x.subject == subject}
125
+ a = @dd.all.select {|x| x.subject == subject}
121
126
 
122
- ordinal = a.any? ? '.' + a.length.to_s : ''
127
+ ordinal = a.any? ? '.' + a.length.to_s : ''
123
128
 
124
- x_file = title + ordinal
129
+ x_file = title + ordinal
125
130
 
126
- id = msg[:msg_id]
131
+ id = msg[:msg_id]
127
132
 
128
- next if @dd.find_by_msg_id id
133
+ next if @dd.find_by_msg_id id
129
134
 
130
- path = archive()
135
+ path = archive()
131
136
 
132
- x_filepath = File.join(path, x_file)
137
+ x_filepath = File.join(path, x_file)
133
138
 
134
- puts 'FileX.pwd ' + FileX.pwd if @debug
135
- puts 'Omah::store before mkdir_p path: ' + path.inspect if @debug
136
- FileX.mkdir_p path
139
+ puts 'FileX.pwd ' + FileX.pwd if @debug
140
+ puts 'Omah::store before mkdir_p path: ' + path.inspect if @debug
141
+ FileX.mkdir_p path
137
142
 
138
- if msg[:raw_source] then
139
- FileX.write File.join(@filepath_user, x_filepath + '.eml'), \
140
- msg[:raw_source]
141
- end
143
+ if msg[:raw_source] then
144
+ FileX.write File.join(@filepath_user, x_filepath + '.eml'), \
145
+ msg[:raw_source]
146
+ end
142
147
 
143
- header = %i(from to subject).inject({}) {|r,x| r.merge(x => msg[x]) }
144
- Kvx.new(header).save File.join(@filepath_user, x_filepath + '.kvx')
145
-
146
- txt_filepath = x_filepath + '.txt'
147
- FileX.write File.join(@filepath_user, txt_filepath), \
148
- text_sanitiser(msg[:body_text].to_s)
148
+ header = %i(from to subject).inject({}) {|r,x| r.merge(x => msg[x]) }
149
+ Kvx.new(header).save File.join(@filepath_user, x_filepath + '.kvx')
150
+
151
+ txt_filepath = x_filepath + '.txt'
152
+ FileX.write File.join(@filepath_user, txt_filepath), \
153
+ text_sanitiser(msg[:body_text].to_s)
149
154
 
150
- html_filepath = x_filepath + '.html'
151
- FileX.write File.join(@filepath_user, html_filepath), \
152
- html_sanitiser(msg[:body_html].to_s)
153
-
154
- parts_path = []
155
-
156
- # save the attachments
157
- if msg[:attachments].length > 0 then
155
+ html_filepath = x_filepath + '.html'
156
+ FileX.write File.join(@filepath_user, html_filepath), \
157
+ html_sanitiser(msg[:body_html].to_s)
158
158
 
159
- attachment_path = File.join(path, title + ordinal)
160
- FileX.mkdir_p attachment_path
159
+ parts_path = []
161
160
 
162
- if msg[:attachments].length < 4 then
161
+ # save the attachments
162
+ if msg[:attachments].length > 0 then
163
+
164
+ attachment_path = File.join(path, title + ordinal)
165
+ FileX.mkdir_p attachment_path
163
166
 
164
- msg[:attachments].each.with_index do |x, i|
167
+ msg[:attachments][0..2].each.with_index do |x, i|
165
168
 
166
169
  name, buffer = x
167
170
  parts_path[i] = File.join(attachment_path, name.gsub('/',''))
@@ -171,39 +174,28 @@ class Omah
171
174
  puts ($!)
172
175
  end
173
176
 
174
- end
175
-
176
- else
177
+ end
177
178
 
178
- # make a zip file and add the attachments to it
179
-
180
- zipfile = File.join(@filepath_user, attachment_path,
181
- title[0,12].downcase + '.zip')
182
- parts_path[0] = zipfile
183
-
184
- FileX.zip zipfile, msg[:attachments]
185
-
186
- end
187
-
179
+ h[:attachments] = msg[:attachments].map(&:first)
188
180
 
189
- end
190
-
191
- msg.delete :attachments
192
-
193
- h = msg.merge(txt_filepath: txt_filepath, \
194
- html_filepath: html_filepath)
195
- parts_path.each.with_index do |path, i|
196
- h.merge!("attachment#{i+1}" => @webpath_user + '/' + path)
197
- end
198
-
199
- if parts_path.any? then
200
-
201
- attachments = parts_path.map do |path|
202
- "<li><a href='%s'>%s</a></li>" % [@webpath_user + '/' + path,
203
- File.basename(path)]
204
181
  end
205
182
 
183
+ msg.delete :attachments
184
+
185
+ h = msg.merge(txt_filepath: txt_filepath, \
186
+ html_filepath: html_filepath)
187
+ parts_path.each.with_index do |path, i|
188
+ h.merge!("attachment#{i+1}" => @webpath_user + '/' + path)
189
+ end
206
190
 
191
+ if parts_path.any? then
192
+
193
+ attachments = parts_path.map do |path|
194
+ "<li><a href='%s'>%s</a></li>" % [@webpath_user + '/' + path,
195
+ File.basename(path)]
196
+ end
197
+
198
+
207
199
  html_page= %Q(
208
200
  <html>
209
201
  <head>
@@ -221,15 +213,23 @@ html_page= %Q(
221
213
  </html>
222
214
  )
223
215
 
224
- FileX.write File.join(attachment_path, 'index.html'), html_page
225
- h[:html_filepath] = File.join(attachment_path, 'index.html')
226
- end
216
+ FileX.write File.join(attachment_path, 'index.html'), html_page
217
+ h[:html_filepath] = File.join(attachment_path, 'index.html')
218
+ end
227
219
 
228
- h[:link] = File.join(@url_base, @webpath_user, html_filepath)
220
+ h[:link] = File.join(@url_base, @webpath_user, html_filepath)
229
221
 
230
- @plugins.each {|x| x.on_newmessage(h) if x.respond_to? :on_newmessage }
222
+ @plugins.each {|x| x.on_newmessage(h) if x.respond_to? :on_newmessage }
223
+
224
+ @dd.create h
225
+
231
226
 
232
- @dd.create h
227
+ # remove the message from the server
228
+ #jr250918 email.delete
229
+
230
+ rescue
231
+ puts 'Omah::store warning: ' + ($!).inspect
232
+ end
233
233
 
234
234
  end
235
235
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omah
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -30,7 +30,7 @@ cert_chain:
30
30
  QYtaxpGWTpAPjszaFSAGnt9wrzAMCFPhpqXanwuDYpQ0rmo/GgWyJNEJuUgvMZBi
31
31
  WfE=
32
32
  -----END CERTIFICATE-----
33
- date: 2018-08-17 00:00:00.000000000 Z
33
+ date: 2018-09-26 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: dynarex-daily
@@ -41,7 +41,7 @@ dependencies:
41
41
  version: '0.4'
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: 0.4.0
44
+ version: 0.4.1
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,27 +51,7 @@ dependencies:
51
51
  version: '0.4'
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.4.0
55
- - !ruby/object:Gem::Dependency
56
- name: rubyzip
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.2'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 1.2.1
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '1.2'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 1.2.1
54
+ version: 0.4.1
75
55
  - !ruby/object:Gem::Dependency
76
56
  name: nokorexi
77
57
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file