mms2r 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,8 @@
1
- == 2.0.4 / 2008-04-20 (Mr. Selatcia - elder member of The Tribunal)
1
+ == 2.0.5 / 2008-07-17 (Dr. Ralphus Galkensmelter - Psychological death expert)
2
+
3
+ * Deal with Apple Mail multipart/appledouble - jesse dp
4
+
5
+ == 2.0.4 / 2008-04-28 (Mr. Selatcia - elder member of The Tribunal)
2
6
 
3
7
  * updated mms.vodacom4me.co.za Vodacom South Africa - Vijay Yellapragada
4
8
  * 1nbox.net / Idea cellular 1nbox.net - Vijay Yellapragada
@@ -42,6 +42,7 @@ test/fixtures/3ireland-mms-01.mail
42
42
  test/fixtures/alltel-image-01.mail
43
43
  test/fixtures/alltel-mms-01.mail
44
44
  test/fixtures/alltel-mms-03.mail
45
+ test/fixtures/apple-double-image-01.mail
45
46
  test/fixtures/att-blackberry-02.mail
46
47
  test/fixtures/att-blackberry.mail
47
48
  test/fixtures/att-image-01.mail
@@ -39,7 +39,7 @@ module MMS2R
39
39
  ##
40
40
  # MMS2R library version
41
41
 
42
- VERSION = '2.0.4'
42
+ VERSION = '2.0.5'
43
43
 
44
44
  end
45
45
 
@@ -153,7 +153,7 @@ module MMS2R
153
153
  ##
154
154
  # Various multi-parts that are bundled into mail
155
155
 
156
- MULTIPARTS_TO_SPLIT = [ 'multipart/related', 'multipart/alternative', 'multipart/mixed' ]
156
+ MULTIPARTS_TO_SPLIT = [ 'multipart/related', 'multipart/alternative', 'multipart/mixed', 'multipart/appledouble' ]
157
157
 
158
158
  ##
159
159
  # Factory method that creates MMS2R::Media products based on the domain
@@ -0,0 +1,53 @@
1
+ Return-Path: <redacted@gmail.com>
2
+ Received: from yw-out-1718.google.com by sp0447a.serverpronto.com with esmtp id 1KHhej-0007t3-QU for <redacted@redacted.com>; Sat, 12 Jul 2008 16:09:06 +0000
3
+ Date: Sat, 12 Jul 2008 15:58:06 +0000
4
+ From: Someone <redacted@gmail.com>
5
+ To: redacted@redacted.com
6
+ Message-Id: <3E665234-0C1C-47D6-B4AA-D065E8B3A20F@gmail.com>
7
+ Subject: En Fuego
8
+ Mime-Version: 1.0
9
+ Content-Type: multipart/mixed; boundary=mimepart_4878d7275deeb_3aba2015b3a81575c
10
+ X-Mailer: Apple Mail (2.753.1)
11
+
12
+
13
+
14
+ --mimepart_4878d7275deeb_3aba2015b3a81575c
15
+ Content-Type: multipart/appledouble; boundary=mimepart_4878d7277edc8_3aba2015b3a81585c
16
+ Content-Disposition: inline
17
+
18
+
19
+
20
+ --mimepart_4878d7277edc8_3aba2015b3a81585c
21
+ Content-Type: application/applefile; name=DSCN1715.jpg
22
+ Content-Transfer-Encoding: Base64
23
+ Content-Disposition: inline; filename=DSCN1715.jpg
24
+
25
+ /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRl
26
+ ZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxER
27
+ ExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4e
28
+ Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQAB
29
+ AwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAA
30
+ AP/EABUBAQEAAAAAAAAAAAAAAAAAAAcI/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQAC
31
+ EQMRAD8AlgA6WW//2Q==
32
+
33
+
34
+ --mimepart_4878d7277edc8_3aba2015b3a81585c
35
+ Content-Type: image/jpeg; name=DSCN1715.jpg; x-mac-type=4A504547; x-mac-creator=3842494D; x-unix-mode=0644
36
+ Content-Transfer-Encoding: Base64
37
+ Content-Disposition: inline; filename=DSCN1715.jpg
38
+ Content-Id: <0C0F0076-B7E7-456E-87C8-D697199BBA15@local>
39
+
40
+ /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRl
41
+ ZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxER
42
+ ExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4e
43
+ Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQAB
44
+ AwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAA
45
+ AP/EABUBAQEAAAAAAAAAAAAAAAAAAAcI/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQAC
46
+ EQMRAD8AlgA6WW//2Q==
47
+
48
+
49
+ --mimepart_4878d7277edc8_3aba2015b3a81585c--
50
+
51
+
52
+ --mimepart_4878d7275deeb_3aba2015b3a81575c--
53
+
@@ -555,7 +555,7 @@ class TestMms2rMedia < Test::Unit::TestCase
555
555
  part = stub(:sub_header => name, :content_type => 'application/octet-stream', :body => "data")
556
556
  result = mms.process_media(part)
557
557
  assert_equal 'image/jpeg', result.first
558
- assert_match /fake\.jpg$/, result.last
558
+ assert_match(/fake\.jpg$/, result.last)
559
559
  mms.purge # have to call purge since a file is put to disk as side effect
560
560
  end
561
561
 
@@ -584,6 +584,24 @@ class TestMms2rMedia < Test::Unit::TestCase
584
584
  mms.purge
585
585
  end
586
586
 
587
+ def test_process_with_multipart_double_parts
588
+ mail = TMail::Mail.parse(load_mail('apple-double-image-01.mail').join)
589
+ mms = MMS2R::Media.new(mail)
590
+
591
+ assert_equal 2, mms.media.size
592
+
593
+ assert_not_nil mms.media['application/applefile']
594
+ assert_equal 1, mms.media['application/applefile'].size
595
+
596
+ assert_not_nil mms.media['image/jpeg']
597
+ assert_equal 1, mms.media['image/jpeg'].size
598
+ assert_match(/DSCN1715\.jpg$/, mms.media['image/jpeg'].first)
599
+
600
+ assert_file_size mms.media['image/jpeg'].first, 337
601
+
602
+ mms.purge
603
+ end
604
+
587
605
  def test_process_with_multipart_alternative_parts
588
606
  mail = stub_mail()
589
607
  plain = stub(:sub_header => 'message.txt', :content_type => 'text/plain', :body => 'a')
@@ -17,7 +17,7 @@ class Test3IrelandIe < Test::Unit::TestCase
17
17
  assert_equal 1, mms.media.size
18
18
  assert_equal 1, mms.media['image/jpeg'].size
19
19
 
20
- assert_match /Image013\.jpg$/, mms.media['image/jpeg'].first
20
+ assert_match(/Image013\.jpg$/, mms.media['image/jpeg'].first)
21
21
  assert_equal 337, File.size(mms.media['image/jpeg'].first)
22
22
 
23
23
  mms.purge
@@ -108,7 +108,7 @@ class TestMmsAttNet < Test::Unit::TestCase
108
108
  assert_equal 2, mms.media.size
109
109
 
110
110
  assert_not_nil mms.media['text/plain']
111
- assert_match /^Testing memorymail from my blackberry and at&t.$/, IO.readlines(mms.media['text/plain'].first).join.strip
111
+ assert_match(/^Testing memorymail from my blackberry and at&t.$/, IO.readlines(mms.media['text/plain'].first).join.strip)
112
112
 
113
113
  assert_not_nil mms.media['image/jpeg'].first
114
114
  assert_match(/IMG00367.jpg/, mms.media['image/jpeg'].first)
@@ -18,7 +18,7 @@ class TestMmsMobileiamMa < Test::Unit::TestCase
18
18
  assert_equal 1, mms.media.size
19
19
 
20
20
  assert_equal 1, mms.media['image/gif'].size
21
- assert_match /jalwapam\.gif$/, mms.media['image/gif'].first
21
+ assert_match(/jalwapam\.gif$/, mms.media['image/gif'].first)
22
22
  assert_equal 1855, File.size(mms.media['image/gif'].first)
23
23
 
24
24
  mms.purge
@@ -20,7 +20,7 @@ class TestMobileIndosatNetId < Test::Unit::TestCase
20
20
  assert_not_nil mms.media['image/jpeg']
21
21
  assert_equal 1, mms.media['image/jpeg'].size
22
22
  assert_not_nil mms.media['image/jpeg'].first
23
- assert_match /Foto_14_.jpg/, mms.media['image/jpeg'].first
23
+ assert_match(/Foto_14_.jpg/, mms.media['image/jpeg'].first)
24
24
  assert_file_size(mms.media['image/jpeg'].first, 337)
25
25
  assert_equal "Hello World", mms.default_text.read
26
26
  mms.purge
@@ -45,7 +45,7 @@ class TestMobileIndosatNetId < Test::Unit::TestCase
45
45
  assert_not_nil mms.media['image/jpeg']
46
46
  assert_equal 1, mms.media['image/jpeg'].size
47
47
  assert_not_nil mms.media['image/jpeg'].first
48
- assert_match /6033_small.jpeg/, mms.media['image/jpeg'].first
48
+ assert_match(/6033_small.jpeg/, mms.media['image/jpeg'].first)
49
49
  assert_file_size(mms.media['image/jpeg'].first, 337)
50
50
  mms.purge
51
51
  end
@@ -20,7 +20,7 @@ class TestSmsSasktelCom < Test::Unit::TestCase
20
20
  assert_equal 1, mms.media.size
21
21
  assert_not_nil mms.media['image/jpeg']
22
22
  assert_equal 1, mms.media['image/jpeg'].size
23
- assert_match /A1.8463391017738573.jpg$/, mms.media['image/jpeg'].first
23
+ assert_match(/A1.8463391017738573.jpg$/, mms.media['image/jpeg'].first)
24
24
  assert_file_size(mms.media['image/jpeg'].first, 337)
25
25
  mms.purge
26
26
  end
@@ -19,7 +19,7 @@ class TestWawPlspicturesCom < Test::Unit::TestCase
19
19
  assert_equal 1, mms.media.size
20
20
  assert_not_nil mms.media['image/jpeg']
21
21
  assert_equal 1, mms.media['image/jpeg'].size
22
- assert_match /A0.7585991693329067.jpg$/, mms.media['image/jpeg'].first
22
+ assert_match(/A0.7585991693329067.jpg$/, mms.media['image/jpeg'].first)
23
23
  assert_file_size(mms.media['image/jpeg'].first, 337)
24
24
  mms.purge
25
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mms2r
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Mondragon
@@ -9,11 +9,12 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-28 00:00:00 -07:00
12
+ date: 2008-07-17 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hpricot
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -23,6 +24,7 @@ dependencies:
23
24
  version:
24
25
  - !ruby/object:Gem::Dependency
25
26
  name: tmail
27
+ type: :runtime
26
28
  version_requirement:
27
29
  version_requirements: !ruby/object:Gem::Requirement
28
30
  requirements:
@@ -32,12 +34,13 @@ dependencies:
32
34
  version:
33
35
  - !ruby/object:Gem::Dependency
34
36
  name: hoe
37
+ type: :runtime
35
38
  version_requirement:
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - ">="
39
42
  - !ruby/object:Gem::Version
40
- version: 1.5.1
43
+ version: 1.5.3
41
44
  version:
42
45
  description: "== DESCRIPTION: MMS2R is a library that decodes the parts of an MMS message to disk while stripping out advertising injected by the mobile 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: * 1nbox/Idea: 1nbox.net * 3 Ireland: mms.3ireland.ie * Alltel: mms.alltel.com * AT&T/Cingular/Legacy: mms.att.net, txt.att.net, mmode.com, mms.mycingular.com, cingularme.com * Bell South / Suncom: bellsouth.net * Cricket Wireless: mms.mycricket.com * Dobson/Cellular One: mms.dobson.net * Helio: mms.myhelio.com * Hutchison 3G UK Ltd: mms.three.co.uk * INDOSAT M2: mobile.indosat.net.id * LUXGSM S.A.: mms.luxgsm.lu * Maroc Telecom / mms.mobileiam.ma * MTM South Africa: mms.mtn.co.za * NetCom (Norway): mms.netcom.no * Nextel: messaging.nextel.com * O2 Germany: mms.o2online.de * Orange & Regional Oranges: orangemms.net, mmsemail.orange.pl, orange.fr * PXT New Zealand: pxt.vodafone.net.nz * Rogers of Canada: rci.rogers.com * SaskTel: sms.sasktel.com * Sprint: pm.sprint.com, messaging.sprintpcs.com * T-Mobile: tmomail.net, mmsreply.t-mobile.co.uk * Vodacom: mms.vodacom4me.co.za * Verizon: vzwpix.com, vtext.com * PLSPICTURES.COM mms hosting: waw.plspictures.com"
43
46
  email: mikemondragon@gmail.com
@@ -94,6 +97,7 @@ files:
94
97
  - test/fixtures/alltel-image-01.mail
95
98
  - test/fixtures/alltel-mms-01.mail
96
99
  - test/fixtures/alltel-mms-03.mail
100
+ - test/fixtures/apple-double-image-01.mail
97
101
  - test/fixtures/att-blackberry-02.mail
98
102
  - test/fixtures/att-blackberry.mail
99
103
  - test/fixtures/att-image-01.mail
@@ -212,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
216
  requirements: []
213
217
 
214
218
  rubyforge_project: mms2r
215
- rubygems_version: 1.1.1
219
+ rubygems_version: 1.2.0
216
220
  signing_key:
217
221
  specification_version: 2
218
222
  summary: Extract user media from MMS (and not carrier cruft)