mms2r 1.1.9 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 1.1.10 / 2007-09-30 (Face Bones)
2
+
3
+ * fixed a case for a nil match on From in the create method (Luke Francl)
4
+ * added support for Alltel message.alltel.com (Ben Wood)
5
+
6
+
1
7
  == 1.1.9 / 2007-09-08 (Rebecca Nightrod - controlling girlfriend of Nathan
2
8
  Explosion)
3
9
 
data/Manifest.txt CHANGED
@@ -2,6 +2,7 @@ History.txt
2
2
  Manifest.txt
3
3
  README.txt
4
4
  Rakefile
5
+ conf/mms2r_alltel_media_ignore.yml
5
6
  conf/mms2r_att_media_subject.yml
6
7
  conf/mms2r_cingular_me_media_subject.yml
7
8
  conf/mms2r_cingular_me_media_transform.yml
@@ -21,6 +22,7 @@ conf/mms2r_verizon_media_transform.yml
21
22
  dev_tools/debug_sprint_hpricot_parsing.rb
22
23
  lib/mms2r.rb
23
24
  lib/mms2r/a_t_t_media.rb
25
+ lib/mms2r/alltel_media.rb
24
26
  lib/mms2r/cingular_me_media.rb
25
27
  lib/mms2r/dobson_media.rb
26
28
  lib/mms2r/helio_media.rb
@@ -59,8 +61,10 @@ lib/vendor/tmail/scanner_r.rb
59
61
  lib/vendor/tmail/stringio.rb
60
62
  lib/vendor/tmail/tmail.rb
61
63
  lib/vendor/tmail/utils.rb
64
+ test/fixtures/alltel-image-01.mail
62
65
  test/fixtures/att-image-01.mail
63
66
  test/fixtures/att-image-02.mail
67
+ test/fixtures/broken_from_spam.mail
64
68
  test/fixtures/cingularme-text-01.mail
65
69
  test/fixtures/cingularme-text-02.mail
66
70
  test/fixtures/dobson-image-01.mail
@@ -98,6 +102,7 @@ test/fixtures/verizon-video-01.mail
98
102
  test/fixtures/vtext-text-01.mail
99
103
  test/test_helper.rb
100
104
  test/test_mms2r_a_t_t_media.rb
105
+ test/test_mms2r_alltel_media.rb
101
106
  test/test_mms2r_cingular_me_media.rb
102
107
  test/test_mms2r_dobson_media.rb
103
108
  test/test_mms2r_helio_media.rb
data/README.txt CHANGED
@@ -18,6 +18,7 @@ library. Suggestions and patches appreciated and welcomed!
18
18
 
19
19
  Corpus of carriers currently processed by MMS2R:
20
20
 
21
+ * Alltel => message.alltel.com
21
22
  * AT&T => mms.att.net
22
23
  * AT&T/Cingular => mmode.com
23
24
  * Cingular => mms.mycingular.com
@@ -0,0 +1,13 @@
1
+ ---
2
+ text/html:
3
+ - !ruby/regexp /^<html> <head> <title>Picture Messaging<\/title>.*/
4
+ multipart/alternative:
5
+ - mms
6
+ image/gif:
7
+ - spacer.gif
8
+ - header.gif
9
+ - bluebar.gif
10
+ - divider.gif
11
+ - greenbar.gif
12
+ image/jpeg:
13
+ - alltel_logo.jpg
@@ -1,4 +1,5 @@
1
1
  ---
2
+ multipart/mixed:
3
+ - !ruby/regexp /^Attachment\:\ /
2
4
  text/plain:
3
- - !ruby/regexp /^$/
4
-
5
+ - !ruby/regexp /^\s+$/
@@ -0,0 +1,10 @@
1
+ module MMS2R
2
+
3
+ ##
4
+ # Alltel version of MMS2R::Media
5
+ #
6
+ # Alltel inlcudes various Alltel advertising wrapped in a HTML presentation
7
+
8
+ class MMS2R::AlltelMedia < MMS2R::Media
9
+ end
10
+ end
data/lib/mms2r/media.rb CHANGED
@@ -70,7 +70,10 @@ module MMS2R
70
70
  def self.create(mail, logger=nil)
71
71
  d = lambda{['mms2r.media',MMS2R::Media]} #sets a default to detect
72
72
  cc = MMS2R::CARRIER_CLASSES.detect(d) do |n, c|
73
- /[^@]+@(.+)/.match(mail.from[0])[1] =~ /^#{Regexp.escape("#{n}")}$/
73
+ match = /[^@]+@(.+)/.match(mail.from[0].strip)
74
+ # check for nil match -- usually a malformed message, but it's better
75
+ # not to choke on it.
76
+ match && match[1] && (match[1].downcase == n.downcase)
74
77
  end
75
78
  cls = cc[1]
76
79
  cls.new(mail, cc[0], logger)
@@ -289,7 +292,7 @@ module MMS2R
289
292
  m = /^([^\/]+)\//.match(type)[1]
290
293
  # fire each regular expression, only break if there is a match
291
294
  ignore = a.each do |i|
292
- if m.eql?('text') || type.eql?('application/smil')
295
+ if m == 'text' || type == 'application/smil' || type == 'multipart/mixed'
293
296
  s = part.body.gsub(/\s+/m," ").strip
294
297
  break(i) if i.match(s)
295
298
  end
data/lib/mms2r.rb CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  $:.unshift(File.dirname(__FILE__) + "/vendor/")
8
8
  require 'mms2r/media'
9
+ require 'mms2r/alltel_media'
9
10
  require 'mms2r/a_t_t_media'
10
11
  require 'mms2r/cingular_me_media'
11
12
  require 'mms2r/dobson_media'
@@ -31,6 +32,7 @@ module MMS2R
31
32
  # is not available MMS2R::Media should be used.
32
33
 
33
34
  CARRIER_CLASSES = {
35
+ 'message.alltel.com' => MMS2R::AlltelMedia,
34
36
  'mms.att.net' => MMS2R::ATTMedia,
35
37
  'cingularme.com' => MMS2R::CingularMeMedia,
36
38
  'mms.dobson.net' => MMS2R::DobsonMedia,
@@ -65,7 +67,7 @@ module MMS2R
65
67
  ##
66
68
  # MMS2R Library version
67
69
 
68
- VERSION = '1.1.9'
70
+ VERSION = '1.1.10'
69
71
 
70
72
  end
71
73
 
@@ -0,0 +1,319 @@
1
+ Message-ID: <13492716.1190256530131.JavaMail.root@md-00>
2
+ Date: Wed, 19 Sep 2007 21:49:04 -0500 (CDT)
3
+ From: 2068675309@message.alltel.com
4
+ To: dude@example.com
5
+ Mime-Version: 1.0
6
+ Content-Type: multipart/mixed;
7
+ boundary="----=_Part_339199_26204483.1190256530127"
8
+ X-Mms-Delivery-Report: no
9
+ X-Mms-Delivery-Time: Wed, 19 Sep 07 21:49:04 CDT
10
+ X-Mms-MMS-Version: 1.0
11
+ X-Mms-Message-Class: Personal
12
+ X-Mms-Message-Type: m-send-req
13
+ X-Mms-Message-Size: 16113
14
+ X-Mms-Read-Reply: no
15
+ X-Mms-Transaction-ID: 1190238538
16
+ X-Mms-Message-ID: 12054900501@mms.alltel.com
17
+ X-Priority: 3
18
+ X-HostedBy: Ericsson
19
+ X-Original-From: 2068675309@mms.alltel.com
20
+ X-Original-Return-Path: <12068675309@mms.alltel.com>
21
+
22
+ ------=_Part_339199_26204483.1190256530127
23
+ Content-Type: multipart/related; type="application/smil";
24
+ boundary="----=_Part_408709_2609320.1190256544347"; start="<mms.smil.txt>"
25
+
26
+ ------=_Part_408709_2609320.1190256544347
27
+ Content-Type: multipart/alternative; name=mms;
28
+ boundary="----=_Part_339198_11649589.1190256530123"
29
+ Content-Disposition: attachment; filename=mms
30
+
31
+ ------=_Part_339198_11649589.1190256530123
32
+ Content-Type: text/html; charset=iso-8859-1
33
+ Content-Transfer-Encoding: 7bit
34
+
35
+ <html>
36
+ <head>
37
+ <title>Picture Messaging</title>
38
+ <style>
39
+ body {
40
+ margin: 0px;
41
+ background-color: #FFFFFF;
42
+ font-size: 11pix;
43
+ font-family: Arial;
44
+ }
45
+ table {
46
+ margin: 0px;
47
+ font-size: 11px;
48
+ font-family: Arial;
49
+ }
50
+ </style>
51
+ </head>
52
+ <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" bgcolor="#FFFFFF">
53
+ <table border="0" width="640" cellspacing="0" cellpadding="0">
54
+ <tr>
55
+ <td><a href="http://www.alltel.com/axcess/picture_messaging.html"><img src="cid:alltel_logo.jpg" width="125" height="58" border="0" alt="Alltel"></a></td>
56
+ <td width="509" height="58" colspan="2"><img src="cid:spacer.gif" width="509" height="58" alt=""></td>
57
+ </tr>
58
+ <tr>
59
+ <td width="640" height="6" colspan="3"><img src="cid:bluebar.gif" width="640" height="6" alt=""></td>
60
+ </tr>
61
+ <tr>
62
+ <td colspan="2" style="padding: 10px 10px 0px 10px;"><a href="http://www.alltel.com/axcess/picture_messaging.html"><img src="cid:header.gif" border="0"></a></td>
63
+ </tr>
64
+ <tr>
65
+ <td width="370">
66
+ <table border="0" width="333" cellspacing="0" cellpadding="0">
67
+ <tr>
68
+ <td width="333" colspan="4"><img src="cid:spacer.gif" width="333" height="15"></td>
69
+ </tr>
70
+
71
+
72
+ <tr>
73
+ <td width="333" colspan="3"><img src="cid:spacer.gif" width="350" height="15"></td>
74
+ </tr>
75
+
76
+ <tr><td width="333" colspan="3"><span class="normal">
77
+
78
+ <img src="cid:media1.jpeg" alt="eastern sky.jpg"><br><br>
79
+ </span></td></tr>
80
+ <tr>
81
+ <td width="333" colspan="3"><img src="cid:spacer.gif" width="350" height="15"></td>
82
+ </tr>
83
+ <tr>
84
+ <td width="333" colspan="3"><img src="cid:divider.gif" width="333"></td>
85
+ </tr>
86
+
87
+
88
+ <tr>
89
+ <td width="333" colspan="4"><img src="cid:spacer.gif" width="333" height="1"></td>
90
+ </tr>
91
+ </table>
92
+ </td>
93
+ </tr>
94
+ <tr>
95
+ <td width="640" height="5" colspan="3"><img src="cid:greenbar.gif" alt=""></td>
96
+ </tr>
97
+ <tr>
98
+ <td width="640" height="35" colspan="3" style="padding: 10px 10px 10px 10px;"><font color="999999">Alltel has no control over, and is not responsible for, the content or use of this picture or the accompanying personal message.</font></td>
99
+ </tr>
100
+ <tr>
101
+ <td> <img src="cid:spacer.gif" width="125" height="1" alt=""></td>
102
+ <td> <img src="cid:spacer.gif" width="208" height="1" alt=""></td>
103
+ <td> <img src="cid:spacer.gif" width="301" height="1" alt=""></td>
104
+ </tr>
105
+ </table>
106
+ <!-- SMIL to HTML provided by Ericsson Systems Integration North America --></body></html>
107
+ ------=_Part_339198_11649589.1190256530123--
108
+
109
+ ------=_Part_408709_2609320.1190256544347
110
+ Content-Type: image/jpeg; name="eastern sky.jpg"
111
+ Content-Transfer-Encoding: base64
112
+ Content-ID: <media1.jpeg>
113
+ Content-Disposition: attachment; filename="eastern sky.jpg"
114
+
115
+ /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRl
116
+ ZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxER
117
+ ExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4e
118
+ Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQAB
119
+ AwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAA
120
+ AP/EABUBAQEAAAAAAAAAAAAAAAAAAAcI/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQAC
121
+ EQMRAD8AlgA6WW//2Q==
122
+ ------=_Part_408709_2609320.1190256544347
123
+ Content-Type: image/gif; name=divider.gif
124
+ Content-Transfer-Encoding: base64
125
+ Content-Disposition: attachment; filename=divider.gif
126
+ Content-ID: <divider.gif>
127
+
128
+ R0lGODlhTAIBAIAAAL7E2QAAACH5BAAAAAAALAAAAABMAgEAAAIWhI+py+0Po5y02ouz3rz7D4bi
129
+ SJZfAQA7
130
+ ------=_Part_408709_2609320.1190256544347
131
+ Content-Type: image/gif; name=spacer.gif
132
+ Content-Transfer-Encoding: base64
133
+ Content-Disposition: attachment; filename=spacer.gif
134
+ Content-ID: <spacer.gif>
135
+
136
+ R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
137
+ ------=_Part_408709_2609320.1190256544347
138
+ Content-Type: image/gif; name=bluebar.gif
139
+ Content-Transfer-Encoding: base64
140
+ Content-Disposition: attachment; filename=bluebar.gif
141
+ Content-ID: <bluebar.gif>
142
+
143
+ R0lGODlhegIGAIAAAABJqgAAACH5BAAAAAAALAAAAAB6AgYAAAJBhI+py+0Po5y02ouz3rz7D4bi
144
+ SJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qhwUAOw==
145
+ ------=_Part_408709_2609320.1190256544347
146
+ Content-Type: image/gif; name=header.gif
147
+ Content-Transfer-Encoding: base64
148
+ Content-Disposition: attachment; filename=header.gif
149
+ Content-ID: <header.gif>
150
+
151
+ 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
186
+ ------=_Part_408709_2609320.1190256544347
187
+ Content-Type: image/gif; name=greenbar.gif
188
+ Content-Transfer-Encoding: base64
189
+ Content-Disposition: attachment; filename=greenbar.gif
190
+ Content-ID: <greenbar.gif>
191
+
192
+ R0lGODlheQIEAIAAAMreXAAAACH5BAAAAAAALAAAAAB5AgQAAAIzhI+py+0Po5y02ouz3rz7D4bi
193
+ SJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKmcFADs=
194
+ ------=_Part_408709_2609320.1190256544347
195
+ Content-Type: image/jpeg; name=alltel_logo.jpg
196
+ Content-Transfer-Encoding: base64
197
+ Content-Disposition: attachment; filename=alltel_logo.jpg
198
+ Content-ID: <alltel_logo.jpg>
199
+
200
+ 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
297
+ ------=_Part_408709_2609320.1190256544347--
298
+
299
+ ------=_Part_339199_26204483.1190256530127
300
+ Content-Type: multipart/mixed;
301
+ boundary="----=_Part_339197_32172314.1190256530112"
302
+
303
+ ------=_Part_339197_32172314.1190256530112
304
+ Content-Type: image/jpeg; name="eastern sky.jpg"
305
+ Content-Transfer-Encoding: base64
306
+ Content-ID: <media1.jpeg>
307
+ Content-Disposition: attachment; filename="eastern sky.jpg"
308
+
309
+ /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRl
310
+ ZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxER
311
+ ExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4e
312
+ Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQAB
313
+ AwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAA
314
+ AP/EABUBAQEAAAAAAAAAAAAAAAAAAAcI/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQAC
315
+ EQMRAD8AlgA6WW//2Q==
316
+ ------=_Part_339197_32172314.1190256530112--
317
+
318
+ ------=_Part_339199_26204483.1190256530127--
319
+
@@ -0,0 +1,80 @@
1
+ Return-Path: <0a01a8c0@afcdesign.co.uk>
2
+ X-Original-To: foo@example.com
3
+ Delivered-To: catchall@example.com
4
+ Received: from [88.232.67.89] (unknown [88.232.67.89])
5
+ by mx5.example.com (Postfix) with ESMTP id B780C1E3BB
6
+ for <foo@example.com>; Fri, 28 Sep 2007 13:14:08 -0500 (CDT)
7
+ Received: from [88.232.67.89] by mail1.metronet.co.uk; Fri, 28 Sep 2007 13:18:09 +0200
8
+ Message-ID: <01c801c1$3fe86590$5943e858@0a01a8c0>
9
+ From: "Kevin Poe"
10
+ To: <foo@example.com>
11
+ Subject: RE: If it is up, it is up for long time
12
+ Date: Fri, 28 Sep 2007 13:18:09 +0200
13
+ MIME-Version: 1.0
14
+ Content-Type: multipart/alternative;
15
+ boundary="----=_NextPart_000_0007_01C801C1.3FE86590"
16
+ X-Priority: 3
17
+ X-MSMail-Priority: Normal
18
+ X-Mailer: Microsoft Outlook Express 5.50.4807.2300
19
+ X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.2300
20
+
21
+ This is a multi-part message in MIME format.
22
+
23
+ ------=_NextPart_000_0007_01C801C1.3FE86590
24
+ Content-Type: text/plain;
25
+ charset="us-ascii"
26
+ Content-Transfer-Encoding: quoted-printable
27
+
28
+
29
+
30
+
31
+ Hey, can you make love more that 10 minutes?
32
+
33
+
34
+
35
+ Yes, you can with our &quot;manpower candies&quot;
36
+
37
+
38
+ All love enhancers (and many other meds) at one online store!
39
+
40
+
41
+ ------=_NextPart_000_0007_01C801C1.3FE86590
42
+ Content-Type: text/html;
43
+ charset="us-ascii"
44
+ Content-Transfer-Encoding: quoted-printable
45
+
46
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
47
+ <HTML><HEAD>
48
+ <META http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii"=
49
+ >
50
+ <META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
51
+ <STYLE></STYLE>
52
+ </HEAD>
53
+ <BODY>
54
+ <html>
55
+ <body>
56
+ <table width=3D"716" border=3D"0" align=3D"center" bgcolor=3D"#3DC5A5">
57
+ <tr>
58
+ <td>
59
+ <div align=3D"center"><font size=3D"3D&quot;4&quot;" face=3D"3Dverd=
60
+ ana"><strong>Hey, can you make love more that 10 minutes?
61
+ </strong></font></div>
62
+
63
+ <div align=3D"center"></div>
64
+ <p align=3D"center"><font size=3D"+1" face=3D"3Dverdana"><strong>Yes,=
65
+ you can with our &quot;manpower candies&quot;</strong></font></p></td>
66
+ </tr>
67
+ </table>
68
+ <table width=3D"716" border=3D"0" align=3D"center" bgcolor=3D"#3DFFF3">
69
+ <tr>
70
+ <td><div align=3D"center"><strong><font color=3D"#FFFFFF"><a href=3D"=
71
+ http://especiallylove.cn" target=3D"_blank">All love enhancers (and many =
72
+ other meds) at one online store!</a></font></strong></div></td>
73
+ </tr>
74
+ </table>
75
+ </body>
76
+ </html>
77
+
78
+ </BODY></HTML>
79
+
80
+ ------=_NextPart_000_0007_01C801C1.3FE86590--
@@ -1,6 +1,7 @@
1
- From:2068675309@mms.example.com
2
- To:tommytutone@example.com
3
- Subject: text only
4
- Message-Id: <00000000000001.0123456789@mx.mms.example.com>
5
- Date: Wed, 10 Jan 2007 08:18:30 -0600 (CST)
1
+ Message-Id: <00000000000001.0123456789@mx.mms.example.com>
2
+ Date: Wed, 10 Jan 2007 08:18:30 -0600 (CST)
3
+ From:2068675309@mms.example.com
4
+ To:tommytutone@example.com
5
+ Subject: text only
6
6
 
7
+
@@ -0,0 +1,39 @@
1
+ $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
+ require File.dirname(__FILE__) + "/test_helper"
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mms2r'
6
+ require 'mms2r/media'
7
+ require 'tmail/mail'
8
+ require 'logger'
9
+
10
+
11
+ class MMS2R::AlltelMediaTest < Test::Unit::TestCase
12
+ include MMS2R::TestHelper
13
+
14
+ def test_alltel_image
15
+ mail = TMail::Mail.parse(load_mail('alltel-image-01.mail').join)
16
+ mms = MMS2R::Media.create(mail)
17
+ assert_equal mms.class, MMS2R::AlltelMedia
18
+
19
+ mms.process
20
+
21
+ assert_equal 1, mms.media.size, "Size is #{mms.media.size}"
22
+ assert_not_nil mms.media['image/jpeg'][0]
23
+ assert_match(/eastern sky.jpg$/, mms.media['image/jpeg'][0])
24
+
25
+ assert_file_size mms.media['image/jpeg'][0], 337
26
+
27
+ mms.purge
28
+ end
29
+
30
+ def test_get_media_should_return_user_generated_content
31
+ mail = TMail::Mail.parse(load_mail('alltel-image-01.mail').join)
32
+ mms = MMS2R::Media.create(mail)
33
+ mms.process
34
+ file = mms.get_media
35
+ assert_equal 'eastern sky.jpg', file.original_filename
36
+ mms.purge
37
+ end
38
+
39
+ end
@@ -242,14 +242,6 @@ class MMS2R::MediaTest < Test::Unit::TestCase
242
242
  mms.purge
243
243
  end
244
244
 
245
- def test_transform_text_should_ignore_empty_text_parts
246
- mail = TMail::Mail.parse(load_mail('hello_world_empty_text.mail').join)
247
- mms = MMS2R::Media.create(mail)
248
- mms.process
249
- assert_equal 0, mms.media.size
250
- mms.purge
251
- end
252
-
253
245
  def test_ignore_text
254
246
  use_temp_dirs()
255
247
  a=[/^hello world$/]
@@ -409,4 +401,11 @@ class MMS2R::MediaTest < Test::Unit::TestCase
409
401
  assert_equal 'mms2r_media_ignore.yml', MMS2R::Media.yaml_file_name(MMS2R::MyCingularMedia.superclass,:ignore)
410
402
  assert_equal 'mms2r_media_transform.yml', MMS2R::Media.yaml_file_name(MMS2R::Media,:transform)
411
403
  end
404
+
405
+ def test_create_should_fail_gracefully_with_broken_from
406
+ assert_nothing_raised do
407
+ mail = TMail::Mail.parse(load_mail('broken_from_spam.mail').join)
408
+ mms = MMS2R::Media.create(mail)
409
+ end
410
+ end
412
411
  end
metadata CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: mms2r
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.9
7
- date: 2007-09-08 00:00:00 -07:00
6
+ version: 1.1.10
7
+ date: 2007-09-30 00:00:00 -07:00
8
8
  summary: Extract user media from MMS (and not carrier cruft)
9
9
  require_paths:
10
10
  - lib
11
11
  email: mikemondragon@gmail.com
12
12
  homepage: http://mms2r.rubyforge.org/
13
13
  rubyforge_project: mms2r
14
- description: "== DESCRIPTION: MMS2R is a library that decodes the parts of an MMS message to disk while stripping out advertising injected by the cellphone carriers. MMS messages are multipart email and the carriers often inject branding into these messages. Use MMS2R if you want to get at the real user generated content from a MMS without having to deal with the cruft from the carriers. If MMS2R is not aware of a particular carrier no extra processing is done to the MMS other than decoding and consolidating its media. Contact the author to add additional carriers to be processed by the library. Suggestions and patches appreciated and welcomed! Corpus of carriers currently processed by MMS2R: * AT&T => mms.att.net * AT&T/Cingular => mmode.com * Cingular => mms.mycingular.com * Cingular => cingularme.com * Dobson/Cellular One => mms.dobson.net * Helio => mms.myhelio.com * Nextel => messaging.nextel.com * Orange (Poland) => mmsemail.orange.pl * Orange (France) => orange.fr * Sprint => pm.sprint.com * Sprint => messaging.sprintpcs.com * T-Mobile => tmomail.net * Verizon => vzwpix.com * Verizon => vtext.com"
14
+ description: "== DESCRIPTION: MMS2R is a library that decodes the parts of an MMS message to disk while stripping out advertising injected by the cellphone carriers. MMS messages are multipart email and the carriers often inject branding into these messages. Use MMS2R if you want to get at the real user generated content from a MMS without having to deal with the cruft from the carriers. If MMS2R is not aware of a particular carrier no extra processing is done to the MMS other than decoding and consolidating its media. Contact the author to add additional carriers to be processed by the library. Suggestions and patches appreciated and welcomed! Corpus of carriers currently processed by MMS2R: * Alltel => message.alltel.com * AT&T => mms.att.net * AT&T/Cingular => mmode.com * Cingular => mms.mycingular.com * Cingular => cingularme.com * Dobson/Cellular One => mms.dobson.net * Helio => mms.myhelio.com * Nextel => messaging.nextel.com * Orange (Poland) => mmsemail.orange.pl * Orange (France) => orange.fr * Sprint => pm.sprint.com * Sprint => messaging.sprintpcs.com * T-Mobile => tmomail.net * Verizon => vzwpix.com * Verizon => vtext.com"
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -33,6 +33,7 @@ files:
33
33
  - Manifest.txt
34
34
  - README.txt
35
35
  - Rakefile
36
+ - conf/mms2r_alltel_media_ignore.yml
36
37
  - conf/mms2r_att_media_subject.yml
37
38
  - conf/mms2r_cingular_me_media_subject.yml
38
39
  - conf/mms2r_cingular_me_media_transform.yml
@@ -52,6 +53,7 @@ files:
52
53
  - dev_tools/debug_sprint_hpricot_parsing.rb
53
54
  - lib/mms2r.rb
54
55
  - lib/mms2r/a_t_t_media.rb
56
+ - lib/mms2r/alltel_media.rb
55
57
  - lib/mms2r/cingular_me_media.rb
56
58
  - lib/mms2r/dobson_media.rb
57
59
  - lib/mms2r/helio_media.rb
@@ -90,8 +92,10 @@ files:
90
92
  - lib/vendor/tmail/stringio.rb
91
93
  - lib/vendor/tmail/tmail.rb
92
94
  - lib/vendor/tmail/utils.rb
95
+ - test/fixtures/alltel-image-01.mail
93
96
  - test/fixtures/att-image-01.mail
94
97
  - test/fixtures/att-image-02.mail
98
+ - test/fixtures/broken_from_spam.mail
95
99
  - test/fixtures/cingularme-text-01.mail
96
100
  - test/fixtures/cingularme-text-02.mail
97
101
  - test/fixtures/dobson-image-01.mail
@@ -129,6 +133,7 @@ files:
129
133
  - test/fixtures/vtext-text-01.mail
130
134
  - test/test_helper.rb
131
135
  - test/test_mms2r_a_t_t_media.rb
136
+ - test/test_mms2r_alltel_media.rb
132
137
  - test/test_mms2r_cingular_me_media.rb
133
138
  - test/test_mms2r_dobson_media.rb
134
139
  - test/test_mms2r_helio_media.rb
@@ -156,6 +161,7 @@ test_files:
156
161
  - test/test_mms2r_sprint_media.rb
157
162
  - test/test_mms2r_vtext_media.rb
158
163
  - test/test_mms2r_dobson_media.rb
164
+ - test/test_mms2r_alltel_media.rb
159
165
  - test/test_mms2r_orange_france_media.rb
160
166
  - test/test_mms2r_m_mode_media.rb
161
167
  - test/test_mms2r_verizon_media.rb