mediafire 1.2.1 → 1.3.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.
@@ -31,6 +31,7 @@ module Mediafire
31
31
  request.set_form_data(options)
32
32
  end
33
33
  end
34
+ request['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2'
34
35
  request['Cookie'] = cookie
35
36
 
36
37
  if has_multipart? options
@@ -1,144 +1,176 @@
1
1
  module Mediafire
2
2
  class StoreObject
3
- L = {
4
- # ??? => 0,
5
- :objecttype => 1,
6
- :filetype => 2,
7
- :quickkey => 3,
8
- :folderkey => 4,
9
- :filename => 5,
10
- :filesize => 6,
11
- :readable_filesize => 7,
12
- :readable_filesize_unit => 8,
13
- :downloads => 9,
14
- :upload_date => 10,
15
- :access_type => 11,
16
- :tags => 12,
17
- :description => 13,
18
- :password => 14,
19
- :imagekey => 15, :folder_quickkey => 15,
20
- :dropbox_enabled => 16,
21
- :image_rotation => 17, :custom_url => 17,
22
- # ??? => 0,
23
- :note_subject => 19,
24
- :note_description => 20,
25
- }
26
-
27
3
  def initialize(d)
28
4
  data(d)
29
5
  end
30
6
 
31
7
  def data(d)
32
- if d.is_a?(Array) && d.size == 21
33
- @data = d
8
+ @created = d['created'] || ''
9
+ @tags = d['tags'] || ''
10
+ @description = d['desc'] || ''
11
+ @privacy = d['privacy'] || ''
12
+ end
13
+
14
+ def is_folder?
15
+ if @data.key?('folder_key')
16
+ true
17
+ else
18
+ false
34
19
  end
35
20
  end
36
21
 
37
- def objecttype
38
- @data[L[:objecttype]]
22
+ def date
23
+ @created
39
24
  end
40
25
 
41
- def is_folder?
42
- if objecttype == '2'
43
- return true
44
- end
45
- return false
26
+ def tags
27
+ @tags
46
28
  end
47
29
 
48
- def filetype
49
- # 1 : picture
50
- # 9 : compress file
51
- # 0 : other
52
- @data[L[:filetype]]
30
+ def description
31
+ @description
53
32
  end
54
33
 
55
- def is_picture?
56
- if filetype == '1'
57
- return true
34
+ def is_public?
35
+ if @privacy == 'public'
36
+ true
37
+ else
38
+ false
58
39
  end
59
- return false
40
+ end
41
+ end
42
+
43
+ class StoreFolder < StoreObject
44
+ def data(d)
45
+ super(d)
46
+
47
+ folders = []
48
+ files = []
49
+
50
+ if d.key?('folders')
51
+ d['folders'].each do |f|
52
+ folders << StoreFolder.new(f)
53
+ end
54
+ end
55
+
56
+ if d.key?('files')
57
+ d['files'].each do |f|
58
+ files << StoreFile.new(f)
59
+ end
60
+ end
61
+
62
+ @folders = folders
63
+ @files = files
64
+
65
+ @name = d['name'] || ''
66
+ @key = d['folderkey'] || ''
67
+ @dropbox_enabled = d['dropbox_enabled'] || ''
68
+ @custom_url = d['custom_url'] || ''
69
+ @revision = d['revision'].to_i
70
+ @file_count = d['file_count'].to_i
60
71
  end
61
72
 
62
- def quickkey
63
- @data[L[:quickkey]]
73
+ def is_folder?
74
+ true
64
75
  end
65
76
 
66
- def folderkey
67
- @data[L[:folderkey]]
77
+ def folder_key
78
+ @key
68
79
  end
80
+ alias :folderkey :folder_key
81
+ alias :key :folder_key
69
82
 
70
83
  def name
71
- @data[L[:filename]]
84
+ @name
72
85
  end
73
86
 
74
- def size
75
- "#{@data[L[:readable_filesize]]}#{@data[L[:readable_filesize_unit]]}"
87
+ def dropbox_enabled?
88
+ if @dropbox_enabled == 'yes'
89
+ true
90
+ else
91
+ false
92
+ end
76
93
  end
77
94
 
78
- def downloads
79
- @data[L[:downloads]].to_i
95
+ def revision
96
+ @revision
80
97
  end
81
98
 
82
- def date
83
- @data[L[:upload_date]]
99
+ def file_count
100
+ @file_count
84
101
  end
85
102
 
86
- def tags
87
- @data[L[:tags]]
103
+ def custom_url
104
+ @custom_url
88
105
  end
89
106
 
90
- def description
91
- @data[L[:description]]
107
+ def folders
108
+ @folders
92
109
  end
93
110
 
94
- def password
95
- @data[L[:password]]
111
+ def files
112
+ @files
113
+ end
114
+ end
115
+
116
+ class StoreFile < StoreObject
117
+ def data(d)
118
+ super(d)
119
+
120
+ @filetype = d['filetype'] || ''
121
+ @key = d['quickkey'] || ''
122
+ @name = d['filename'] || ''
123
+ @password_protected = d['password_protected'] || ''
124
+ @hash = d['hash'] || ''
125
+ @size = d['size'].to_i
126
+ @downloads = d['downloads'].to_i
96
127
  end
97
128
 
98
- def imagekey
99
- @data[L[:imagekey]]
129
+ def filetype
130
+ @filetype
100
131
  end
101
132
 
102
- def folder_quickkey
103
- @data[L[:folder_quickkey]]
133
+ def is_folder?
134
+ false
104
135
  end
105
136
 
106
- def dropbox_enabled
107
- if @data[L[:dropbox_enabled]] == '1'
108
- return true
137
+ def is_picture?
138
+ if @filetype == 'image'
139
+ true
140
+ else
141
+ false
109
142
  end
110
- return false
111
143
  end
112
144
 
113
- def access_type
114
- @data[L[:access_type]]
145
+ def quick_key
146
+ @key
115
147
  end
148
+ alias :quickkey :quick_key
149
+ alias :key :quick_key
116
150
 
117
- def is_public?
118
- if access_type == '0'
119
- return true
120
- end
121
- return false
151
+ def name
152
+ @name
122
153
  end
123
154
 
124
- def image_rotation
125
- # 0
126
- # 90
127
- # 180
128
- # 270
129
- @data[L[:image_rotation]]
155
+ def size
156
+ @size
130
157
  end
131
158
 
132
- def folder_quickkey
133
- @data[L[:folder_quickkey]]
159
+ def downloads
160
+ @downloads
134
161
  end
135
162
 
136
- def note_subject
137
- @data[L[:note_subject]]
163
+ def protected?
164
+ if @password_protected == 'yes'
165
+ true
166
+ else
167
+ false
168
+ end
138
169
  end
139
170
 
140
- def note_description
141
- @data[L[:note_description]]
171
+ def hash
172
+ @hash
142
173
  end
174
+ alias :imagekey :hash
143
175
  end
144
176
  end
@@ -1,3 +1,3 @@
1
1
  module Mediafire
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_runtime_dependency "nokogiri", ">= 1.5.0"
22
+ s.add_runtime_dependency "json", ">= 1.6.1"
22
23
  s.add_runtime_dependency "multipart-post", ">= 1.1.3"
23
24
  s.add_runtime_dependency "net-http-uploadprogress", ">= 1.0.0"
24
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediafire
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-25 00:00:00.000000000Z
12
+ date: 2011-11-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70179447300800 !ruby/object:Gem::Requirement
16
+ requirement: &70193817921980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: 1.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70179447300800
24
+ version_requirements: *70193817921980
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70193817921480 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.6.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70193817921480
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: multipart-post
27
- requirement: &70179447300300 !ruby/object:Gem::Requirement
38
+ requirement: &70193817951980 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 1.1.3
33
44
  type: :runtime
34
45
  prerelease: false
35
- version_requirements: *70179447300300
46
+ version_requirements: *70193817951980
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: net-http-uploadprogress
38
- requirement: &70179447299840 !ruby/object:Gem::Requirement
49
+ requirement: &70193817951520 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ! '>='
@@ -43,7 +54,7 @@ dependencies:
43
54
  version: 1.0.0
44
55
  type: :runtime
45
56
  prerelease: false
46
- version_requirements: *70179447299840
57
+ version_requirements: *70193817951520
47
58
  description: A Ruby wrapper for the unofficial Mediafire API
48
59
  email:
49
60
  - m@skahack.com
@@ -56,7 +67,6 @@ files:
56
67
  - MIT_LICENSE
57
68
  - README.md
58
69
  - Rakefile
59
- - examples/common.rb
60
70
  - examples/create_folder.rb
61
71
  - examples/delete_file.rb
62
72
  - examples/download.rb
@@ -66,7 +76,6 @@ files:
66
76
  - examples/dropbox_setup_option.rb
67
77
  - examples/dropbox_upload.rb
68
78
  - examples/edit_fileoption.rb
69
- - examples/edit_note.rb
70
79
  - examples/get_myfile_list.rb
71
80
  - examples/image_rotation.rb
72
81
  - examples/move_file.rb
@@ -1,27 +0,0 @@
1
- require '../lib/mediafire'
2
- require 'uuidtools'
3
-
4
- def login
5
- account = ''
6
- password = ''
7
-
8
- m = Mediafire.new
9
- m.login(account, password)
10
- return m
11
- end
12
-
13
- def pritty_format_datafile(f)
14
- out = "filename:#{f.name} "
15
- out << "size:#{f.size} "
16
- out << "link:http://www.mediafire.com/download.php?#{f.quickkey}"
17
- end
18
-
19
- def root_folder
20
- key = 'b37807725fe86791'
21
- data = ['1', '2', '0', key, key, 'myfiles', '0'].fill('', 7..20)
22
- Mediafire::StoreObject.new(data)
23
- end
24
-
25
- def create_uuid
26
- UUIDTools::UUID.random_create.to_s
27
- end
@@ -1,16 +0,0 @@
1
- require './common'
2
-
3
- uuid = create_uuid
4
- File.open(uuid, "w") do |f|
5
- f.write(uuid)
6
- end
7
-
8
- m = login
9
- file = m.upload(uuid)
10
- note = {
11
- :subject => 'edited',
12
- :description=> 'edited',
13
- }
14
- m.edit_note(file, note)
15
-
16
- File.delete(uuid)