aniero-iphone_data 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.txt +3 -2
- data/Rakefile +5 -2
- data/lib/iphone_data.rb +0 -3
- data/lib/iphone_data/command.rb +5 -9
- data/lib/iphone_data/iphone.rb +3 -1
- metadata +31 -5
data/README.txt
CHANGED
|
@@ -18,6 +18,7 @@ Script to dump data from an iPhone's sync backup files.
|
|
|
18
18
|
* Dump SMS message logs as a log file or an mbox file
|
|
19
19
|
* Dump all of the iPhone backup files into a specified directory
|
|
20
20
|
* Assumes only a single iPhone right now
|
|
21
|
+
* For SMS logs, only US numbers work correctly, I haven't tested international numbers
|
|
21
22
|
|
|
22
23
|
== SYNOPSIS:
|
|
23
24
|
|
|
@@ -26,8 +27,8 @@ iphone_data <command> [options]
|
|
|
26
27
|
Commands include:
|
|
27
28
|
|
|
28
29
|
help - show help
|
|
29
|
-
sms -
|
|
30
|
-
dump - dump the iphone backup data
|
|
30
|
+
sms - dump sms messages in log or threaded mbox format
|
|
31
|
+
dump - dump the iphone backup data to a specified directory
|
|
31
32
|
|
|
32
33
|
== REQUIREMENTS:
|
|
33
34
|
|
data/Rakefile
CHANGED
|
@@ -12,9 +12,12 @@ task :default => 'spec:run'
|
|
|
12
12
|
PROJ.name = 'iphone_data'
|
|
13
13
|
PROJ.authors = 'Nathan Witmer'
|
|
14
14
|
PROJ.email = 'nwitmer@gmail.com'
|
|
15
|
-
PROJ.url = 'http://github.com'
|
|
15
|
+
PROJ.url = 'http://github.com/aniero/iphone_data'
|
|
16
|
+
PROJ.version = IPhoneData.version
|
|
16
17
|
PROJ.rubyforge.name = ''
|
|
17
18
|
|
|
18
19
|
PROJ.spec.opts << '--color --format specdoc'
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
depend_on "plist", ">= 3.0.0"
|
|
22
|
+
depend_on "sqlite3-ruby", ">= 1.2.1"
|
|
23
|
+
depend_on "main", ">= 2.8.0"
|
data/lib/iphone_data.rb
CHANGED
|
@@ -46,9 +46,6 @@ module IPhoneData
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
require "rubygems"
|
|
49
|
-
gem "plist", ">= 3.0.0"
|
|
50
|
-
gem "sqlite3-ruby", ">= 1.2.1"
|
|
51
|
-
gem "main", ">= 2.8.0"
|
|
52
49
|
%w(plist sqlite3 main pathname tempfile).each { |lib| require lib }
|
|
53
50
|
|
|
54
51
|
IPhoneData.require_all_libs_relative_to __FILE__
|
data/lib/iphone_data/command.rb
CHANGED
|
@@ -15,18 +15,14 @@ module IPhoneData
|
|
|
15
15
|
|
|
16
16
|
option("format", "f") do
|
|
17
17
|
argument_optional
|
|
18
|
-
description "Format in which to dump the sms messages, One of 'log' or 'mbox'"
|
|
18
|
+
description "Format in which to dump the sms messages, One of 'log' or 'mbox'. 'mbox' format is threaded."
|
|
19
19
|
default "log"
|
|
20
20
|
validate { |a| %w(log mbox).include? a }
|
|
21
|
+
attribute # put it in local scope for run
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
run do
|
|
24
|
-
|
|
25
|
-
when "log"
|
|
26
|
-
IPhoneData::IPhone.iphones.first.sms_messages.each { |m| puts m.to_s(:log) }
|
|
27
|
-
when "mbox"
|
|
28
|
-
IPhoneData::IPhone.iphones.first.sms_messages.each { |m| puts m.to_s(:mbox) }
|
|
29
|
-
end
|
|
25
|
+
IPhoneData::IPhone.iphones.first.sms_messages.each { |m| puts m.to_s(format.to_sym) }
|
|
30
26
|
end
|
|
31
27
|
end
|
|
32
28
|
|
|
@@ -37,11 +33,11 @@ module IPhoneData
|
|
|
37
33
|
argument("dir") do
|
|
38
34
|
required
|
|
39
35
|
description "Where to put the files (creates the directory if it doesn't exist)"
|
|
40
|
-
attribute
|
|
36
|
+
attribute
|
|
41
37
|
end
|
|
42
38
|
|
|
43
39
|
run do
|
|
44
|
-
where = Pathname.new(File.expand_path(dir))
|
|
40
|
+
where = Pathname.new(File.expand_path(dir))
|
|
45
41
|
phone = IPhoneData::IPhone.iphones.first
|
|
46
42
|
puts "dumping #{phone.name.inspect} to #{where}"
|
|
47
43
|
phone.dump_data(where)
|
data/lib/iphone_data/iphone.rb
CHANGED
|
@@ -45,10 +45,12 @@ module IPhoneData
|
|
|
45
45
|
FileUtils.mkdir_p(to + File.dirname(key))
|
|
46
46
|
File.open(to + key, "wb") do |out|
|
|
47
47
|
case data[key]
|
|
48
|
-
when
|
|
48
|
+
when StringIO
|
|
49
49
|
out.write data[key].read # .mbackup file data
|
|
50
50
|
when Hash
|
|
51
51
|
out.write Plist::Emit.dump(data[key]) # Info.plist, etc.
|
|
52
|
+
else
|
|
53
|
+
puts "couldn't write out #{key}, don't know how to handle a #{data[key].class}"
|
|
52
54
|
end
|
|
53
55
|
end
|
|
54
56
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aniero-iphone_data
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Witmer
|
|
@@ -9,10 +9,36 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2008-05-
|
|
12
|
+
date: 2008-05-25 00:00:00 -07:00
|
|
13
13
|
default_executable: iphone_data
|
|
14
|
-
dependencies:
|
|
15
|
-
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: plist
|
|
17
|
+
version_requirement:
|
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
19
|
+
requirements:
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 3.0.0
|
|
23
|
+
version:
|
|
24
|
+
- !ruby/object:Gem::Dependency
|
|
25
|
+
name: sqlite3-ruby
|
|
26
|
+
version_requirement:
|
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
+
requirements:
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: 1.2.1
|
|
32
|
+
version:
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: main
|
|
35
|
+
version_requirement:
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 2.8.0
|
|
41
|
+
version:
|
|
16
42
|
description: Script to dump data from an iPhone's sync backup files.
|
|
17
43
|
email: nwitmer@gmail.com
|
|
18
44
|
executables:
|
|
@@ -47,7 +73,7 @@ files:
|
|
|
47
73
|
- tasks/spec.rake
|
|
48
74
|
- tasks/test.rake
|
|
49
75
|
has_rdoc: true
|
|
50
|
-
homepage: http://github.com
|
|
76
|
+
homepage: http://github.com/aniero/iphone_data
|
|
51
77
|
post_install_message:
|
|
52
78
|
rdoc_options:
|
|
53
79
|
- --main
|