mediafire 1.1.0 → 1.2.1
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/examples/upload_file_with_upload-progress.rb +44 -0
- data/lib/mediafire.rb +5 -0
- data/lib/mediafire/client.rb +2 -0
- data/lib/mediafire/connection.rb +27 -1
- data/lib/mediafire/version.rb +1 -1
- data/mediafire.gemspec +1 -1
- metadata +18 -6
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'mediafire'
|
2
|
+
require 'progressbar'
|
3
|
+
|
4
|
+
if ARGV.size < 1
|
5
|
+
exit
|
6
|
+
end
|
7
|
+
|
8
|
+
queue = Queue.new
|
9
|
+
|
10
|
+
file = ARGV[0]
|
11
|
+
filename = File.basename(file)
|
12
|
+
puts "Filename: " + filename
|
13
|
+
filesize = File.stat(file).size
|
14
|
+
puts "Filesize: " + filesize.to_s
|
15
|
+
|
16
|
+
m = Mediafire.new
|
17
|
+
m.login('<account>', '<password>')
|
18
|
+
|
19
|
+
Thread.new do
|
20
|
+
queue.push m.upload(file)
|
21
|
+
end
|
22
|
+
|
23
|
+
upload_t = nil
|
24
|
+
while upload_t.nil?
|
25
|
+
Thread.list.each do |n|
|
26
|
+
if n.key?(:filename)
|
27
|
+
upload_t = n
|
28
|
+
break
|
29
|
+
end
|
30
|
+
end
|
31
|
+
sleep 0.1
|
32
|
+
end
|
33
|
+
|
34
|
+
pbar = ProgressBar.new('test(bytes)', filesize)
|
35
|
+
pbar.file_transfer_mode
|
36
|
+
while upload_t.alive?
|
37
|
+
uploadsize = m.upload_size filename
|
38
|
+
pbar.set(uploadsize) if uploadsize <= filesize
|
39
|
+
sleep 0.01
|
40
|
+
end
|
41
|
+
pbar.finish
|
42
|
+
|
43
|
+
uploadfile = queue.pop
|
44
|
+
puts "filename: #{uploadfile.name} size: #{uploadfile.size} key: #{uploadfile.quickkey}"
|
data/lib/mediafire.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
+
$:.unshift(File.dirname(__FILE__))
|
4
|
+
|
5
|
+
require 'thread'
|
6
|
+
require 'timeout'
|
3
7
|
require 'nokogiri'
|
4
8
|
require 'mediafire/connection'
|
5
9
|
require 'mediafire/store_object'
|
6
10
|
require 'mediafire/error'
|
7
11
|
require 'mediafire/client'
|
8
12
|
|
13
|
+
|
9
14
|
module Mediafire
|
10
15
|
class << self
|
11
16
|
def new()
|
data/lib/mediafire/client.rb
CHANGED
data/lib/mediafire/connection.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'uri'
|
2
2
|
require 'net/http'
|
3
3
|
require 'net/http/post/multipart'
|
4
|
+
require 'net/http/uploadprogress'
|
4
5
|
|
5
6
|
Net::HTTP.version_1_1
|
6
7
|
|
@@ -32,16 +33,29 @@ module Mediafire
|
|
32
33
|
end
|
33
34
|
request['Cookie'] = cookie
|
34
35
|
|
36
|
+
if has_multipart? options
|
37
|
+
t = Thread.new do
|
38
|
+
loop do
|
39
|
+
@s_queue.pop.call request.upload_size
|
40
|
+
end
|
41
|
+
end
|
42
|
+
options.values.each do |v|
|
43
|
+
if v.is_a? UploadIO
|
44
|
+
t[:filename] = v.original_filename
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
35
48
|
response = Net::HTTP.start(uri.host, uri.port) do |http|
|
36
49
|
http.request(request)
|
37
50
|
end
|
51
|
+
t.kill if has_multipart? options
|
38
52
|
check_statuscode(response)
|
39
53
|
build_cookie(response.get_fields('Set-Cookie'))
|
40
54
|
|
41
55
|
return response
|
42
56
|
end
|
43
57
|
|
44
|
-
def has_multipart?(options)
|
58
|
+
def has_multipart?(options={})
|
45
59
|
options.values.each do |v|
|
46
60
|
if v.is_a? UploadIO
|
47
61
|
return true
|
@@ -49,6 +63,18 @@ module Mediafire
|
|
49
63
|
end
|
50
64
|
false
|
51
65
|
end
|
66
|
+
|
67
|
+
def upload_size(filename)
|
68
|
+
Thread.list.each do |t|
|
69
|
+
if t[:filename] == filename
|
70
|
+
@s_queue.push Proc.new {|n| @r_queue.push n}
|
71
|
+
return @r_queue.pop
|
72
|
+
end
|
73
|
+
end
|
74
|
+
0
|
75
|
+
rescue Timeout::Error => e
|
76
|
+
return nil
|
77
|
+
end
|
52
78
|
|
53
79
|
private
|
54
80
|
|
data/lib/mediafire/version.rb
CHANGED
data/mediafire.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
# s.add_development_dependency "rspec"
|
22
21
|
s.add_runtime_dependency "nokogiri", ">= 1.5.0"
|
23
22
|
s.add_runtime_dependency "multipart-post", ">= 1.1.3"
|
23
|
+
s.add_runtime_dependency "net-http-uploadprogress", ">= 1.0.0"
|
24
24
|
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.1
|
4
|
+
version: 1.2.1
|
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-
|
12
|
+
date: 2011-09-25 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &70179447300800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70179447300800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: multipart-post
|
27
|
-
requirement: &
|
27
|
+
requirement: &70179447300300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,18 @@ dependencies:
|
|
32
32
|
version: 1.1.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70179447300300
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: net-http-uploadprogress
|
38
|
+
requirement: &70179447299840 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.0
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70179447299840
|
36
47
|
description: A Ruby wrapper for the unofficial Mediafire API
|
37
48
|
email:
|
38
49
|
- m@skahack.com
|
@@ -63,6 +74,7 @@ files:
|
|
63
74
|
- examples/toggle_acl.rb
|
64
75
|
- examples/update.rb
|
65
76
|
- examples/upload_file.rb
|
77
|
+
- examples/upload_file_with_upload-progress.rb
|
66
78
|
- lib/mediafire.rb
|
67
79
|
- lib/mediafire/api.rb
|
68
80
|
- lib/mediafire/client.rb
|