mms2r 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -1
- data/Manifest.txt +1 -0
- data/lib/mms2r.rb +1 -1
- data/lib/mms2r/media.rb +1 -1
- data/test/fixtures/apple-double-image-01.mail +53 -0
- data/test/test_mms2r_media.rb +19 -1
- data/test/test_mms_3ireland_ie.rb +1 -1
- data/test/test_mms_att_net.rb +1 -1
- data/test/test_mms_mobileiam_ma.rb +1 -1
- data/test/test_mobile_indosat_net_id.rb +2 -2
- data/test/test_sms_sasktel_com.rb +1 -1
- data/test/test_waw_plspictures_com.rb +1 -1
- metadata +8 -4
data/History.txt
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
== 2.0.
|
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
|
data/Manifest.txt
CHANGED
@@ -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
|
data/lib/mms2r.rb
CHANGED
data/lib/mms2r/media.rb
CHANGED
@@ -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
|
+
|
data/test/test_mms2r_media.rb
CHANGED
@@ -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
|
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
|
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
|
data/test/test_mms_att_net.rb
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
+
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-
|
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.
|
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.
|
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)
|