mediafire 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)