mailfakk2 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -25,7 +25,7 @@ Debian / Ubuntu
25
25
  ---------------
26
26
 
27
27
  * sudo apt-get install ruby ruby-dev gs unoconv openoffice.org-headless rubygems xvfb librmagick-ruby
28
- * sudo gem install activesupport andand mail prawn
28
+ * sudo gem install mailfakk2
29
29
 
30
30
  Cons
31
31
  ====
@@ -34,16 +34,16 @@ If you plan to spam by fax you should consider another product. MailFaKK2 is
34
34
  kind of slow. This is caused by launching OpenOffice.org for every conversion.
35
35
  Speed is not a priority for us (yet).
36
36
 
37
- TODO
38
- ====
37
+ TODO / Features
38
+ ===============
39
39
 
40
40
  * [x] generate cover sheet TIFF frame from email body
41
41
  * [x] append OpenOffice.org documents
42
42
  * [ ] append MS Office documents
43
- * [ ] write TIFF and callfile
44
- * [-] procmail mode (untested)
43
+ * [x] write TIFF and callfile
44
+ * [x] procmail mode
45
45
  * [ ] header and footer for every frame
46
- * [ ] gemspec
46
+ * [x] gemspec
47
47
  * [ ] check if fax was delivered (callfile moved to outgoing_done)
48
48
 
49
49
  Meta
data/lib/facsimile.rb CHANGED
@@ -6,8 +6,10 @@ class Facsimile
6
6
 
7
7
  #include ActiveSupport::Memoization
8
8
 
9
- class NoPhoneNumberFound < Exception; end
10
- class NoContentFound < Exception; end
9
+ class Error < ::Exception; end
10
+ class NoPhoneNumberFound < Error; end
11
+ class NoContentFound < Error; end
12
+ class BadContent < Error; end
11
13
 
12
14
  attr_reader :frames
13
15
  attr_reader :mail
@@ -43,10 +45,14 @@ class Facsimile
43
45
  add_frames text2tiff( part.decoded )
44
46
  when %r'opendocument\.text'
45
47
  add_frames oo2tiff( part.decoded )
48
+ when %r'openxmlformats-officedocument' # docx, xlsx
49
+ add_frames oo2tiff( part.decoded, part.filename )
46
50
  when %r'text/html'
47
51
  # FIXME ignore html, let's hope a plain text contained everything important
52
+ when %r'multipart/alternative'
53
+ # ignore this, stupid outlook
48
54
  else
49
- STDERR.puts "unsupported content type: #{part.content_type}"
55
+ log "unsupported content type: #{part.content_type}"
50
56
  end
51
57
  end
52
58
 
@@ -120,15 +126,25 @@ class Facsimile
120
126
  read_frame dest.path
121
127
  end
122
128
 
123
- def oo2tiff(source_data)
124
- source = mktemp('oo', false)
129
+ # For some filetypes we need the filename to apend the same extention to the tempfile
130
+ def oo2tiff(source_data, filename=nil)
131
+ if filename.blank?
132
+ source = mktemp('oo', false)
133
+ pdf_path = source.path + '.pdf'
134
+ else
135
+ extention = filename.split('.').last
136
+ source = mktemp(['oo', ".#{extention}"], false)
137
+ pdf_path = source.path.sub(/#{extention}$/,'pdf')
138
+ end
125
139
  source.write source_data
126
140
  source.close
127
141
 
128
142
  dest = mktemp('pdf')
129
143
  xvfb("unoconv -f pdf #{source.path}")
130
- FileUtils.mv source.path + '.pdf', dest.path
131
- pdf2tiff(dest.path)
144
+ if File.file?(pdf_path)
145
+ FileUtils.mv pdf_path, dest.path
146
+ pdf2tiff(dest.path)
147
+ end
132
148
  end
133
149
 
134
150
  def text2pdf(source)
@@ -68,3 +68,16 @@ describe "text with attached OpenOffice Writer Document (2 Pages)" do
68
68
  end
69
69
 
70
70
  end
71
+
72
+ describe "mail with word (2 pages) and excel attachment" do
73
+ before(:each) do
74
+ @mail_path = mail_path('word_and_excel')
75
+ @fax = Facsimile.new @mail_path
76
+ end
77
+
78
+ it 'should produce 2+1 frames' do
79
+ @fax.write result_path('word_and_excel')
80
+ @fax.should have(3).frames
81
+ end
82
+
83
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Niklas Hofer