cherrypicker 0.1.0 → 0.1.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/README.md +61 -0
- data/lib/cherrypicker/linkchecker.rb +33 -20
- data/lib/cherrypicker/version.rb +1 -1
- metadata +3 -3
- data/README +0 -38
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
Cherrypicker
|
2
|
+
=========
|
3
|
+
|
4
|
+
Cherrypicker was part of my final year project for university it
|
5
|
+
is a Ruby Gem that lets you download from; Rapidshare or Hotfile
|
6
|
+
You can also utilise the LinkChecker to see if your files are
|
7
|
+
alive on Rapidshare or Hotfile
|
8
|
+
|
9
|
+
Enjoy!
|
10
|
+
|
11
|
+
Installation
|
12
|
+
------------
|
13
|
+
|
14
|
+
gem install cherrypicker
|
15
|
+
|
16
|
+
Usage
|
17
|
+
-----
|
18
|
+
|
19
|
+
require 'cherrypicker'
|
20
|
+
|
21
|
+
Examples
|
22
|
+
--------
|
23
|
+
|
24
|
+
test = Rapidshare.new("http://rapidshare.com/files/329036215/myfile.rar", "username", "password")
|
25
|
+
test.download
|
26
|
+
|
27
|
+
test2 = Hotfile.new("http://hotfile.com/dl/81103855/ee51a52/myfile.rar", "username", "password")
|
28
|
+
test2.download
|
29
|
+
|
30
|
+
check = LinkChecker.new([
|
31
|
+
"http://rapidshare.com/files/329036215/myfile.rar",
|
32
|
+
"http://rapidshare.com/files/329036764/deadfile.rar"]).status
|
33
|
+
|
34
|
+
Contributing
|
35
|
+
------------
|
36
|
+
|
37
|
+
If you'd like to contribute a feature or bugfix: Thanks! To make sure your
|
38
|
+
fix/feature has a high chance of being included, please read the following
|
39
|
+
guidelines:
|
40
|
+
|
41
|
+
1. Post a new GitHub Issue[http://github.com/karlentwistle/Cherrypicker/issues].
|
42
|
+
|
43
|
+
Limitations
|
44
|
+
-----------
|
45
|
+
|
46
|
+
1. The download function is only useful if you're using premium accounts,
|
47
|
+
this will not work without a valid username and password when downloading a file
|
48
|
+
|
49
|
+
2. The linkchecker is subject to throttling from both Hotfile and Rapidshare
|
50
|
+
so don't abuse it
|
51
|
+
|
52
|
+
3. I frequently have problems accessing file hosting sites because one of their
|
53
|
+
files has been included on the IWF list and the ISP IWF filtering screws things up.
|
54
|
+
(Im on Virgin Media)
|
55
|
+
|
56
|
+
License
|
57
|
+
-------
|
58
|
+
|
59
|
+
Cherypicker is free software, and may be redistributed and be used for
|
60
|
+
anything apart from the operation of nuclear facilities, aircraft navigation
|
61
|
+
or communication systems, air traffic control, life support or weapons systems.
|
@@ -1,3 +1,12 @@
|
|
1
|
+
# Class that can query Rapidshare or Hotfile to get link
|
2
|
+
#
|
3
|
+
# rapid = Rapidshare.new("http://rapidshare.com/files/329036215/The.Matrix.bandaa25.part06.rar", "username", "password")
|
4
|
+
# puts rapid.link
|
5
|
+
# puts rapid.fileid
|
6
|
+
# puts rapid.filename
|
7
|
+
# puts rapid.host
|
8
|
+
# rapid.download
|
9
|
+
|
1
10
|
class LinkChecker
|
2
11
|
attr_accessor :links, :status
|
3
12
|
|
@@ -11,6 +20,7 @@ class LinkChecker
|
|
11
20
|
end
|
12
21
|
|
13
22
|
def rapidshare
|
23
|
+
links = self.links
|
14
24
|
files = Array.new
|
15
25
|
filenames = Array.new
|
16
26
|
singlelinks = Array.new
|
@@ -38,17 +48,15 @@ class LinkChecker
|
|
38
48
|
else
|
39
49
|
status = "Dead"
|
40
50
|
end
|
41
|
-
singlelinks << SingleLink.new(links[index], "#{status}")
|
51
|
+
singlelinks << SingleLink.new(links[index], "#{status}", size)
|
42
52
|
end
|
43
53
|
|
44
54
|
links = {}
|
45
55
|
singlelinks.each do |a|
|
46
56
|
links[a.status] ||= []
|
47
|
-
links[a.status] << a.link
|
57
|
+
links[a.status] << [a.link, a.size]
|
48
58
|
end
|
49
|
-
|
50
|
-
return links
|
51
|
-
|
59
|
+
return links
|
52
60
|
end
|
53
61
|
|
54
62
|
def hotfile
|
@@ -73,34 +81,39 @@ class LinkChecker
|
|
73
81
|
|
74
82
|
check = remote_query(query).body.split("\n")
|
75
83
|
|
76
|
-
|
77
|
-
|
78
|
-
c
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
84
|
+
unless check.size == 0
|
85
|
+
#"111044909,1,Playaz-Sub_Zero-PLAYAZ015-WEB-2011-EGM.rar "
|
86
|
+
check.each_with_index do |c, index|
|
87
|
+
c[/([^,]+)\,([^,]+)\,([^,]+)/]
|
88
|
+
name = Regexp.last_match(3)
|
89
|
+
size = Regexp.last_match(1)
|
90
|
+
if Regexp.last_match(2) == "1"
|
91
|
+
status = "Alive"
|
92
|
+
else
|
93
|
+
status = "Dead"
|
94
|
+
end
|
95
|
+
singlelinks << SingleLink.new(links[index], "#{status}", size)
|
96
|
+
end
|
97
|
+
else
|
98
|
+
links.each do |link|
|
99
|
+
singlelinks << SingleLink.new(link, "Dead", nil)
|
85
100
|
end
|
86
|
-
singlelinks << SingleLink.new(links[index], "#{status}")
|
87
101
|
end
|
88
102
|
|
89
103
|
links = {}
|
90
104
|
singlelinks.each do |a|
|
91
105
|
links[a.status] ||= []
|
92
|
-
links[a.status] << a.link
|
106
|
+
links[a.status] << [a.link, a.size]
|
93
107
|
end
|
94
|
-
|
95
108
|
return links
|
96
|
-
|
97
109
|
end
|
98
110
|
end
|
99
111
|
|
100
112
|
class SingleLink
|
101
|
-
attr_accessor :link, :status
|
113
|
+
attr_accessor :link, :status, :size
|
102
114
|
|
103
|
-
def initialize(link, status)
|
115
|
+
def initialize(link, status, size)
|
116
|
+
@size = size
|
104
117
|
@link = link
|
105
118
|
@status = status
|
106
119
|
end
|
data/lib/cherrypicker/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: cherrypicker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Karl Entwistle
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-21 00:00:00 +00:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|
@@ -26,7 +26,7 @@ extra_rdoc_files: []
|
|
26
26
|
files:
|
27
27
|
- .gitignore
|
28
28
|
- Gemfile
|
29
|
-
- README
|
29
|
+
- README.md
|
30
30
|
- Rakefile
|
31
31
|
- cherrypicker.gemspec
|
32
32
|
- lib/cherrypicker.rb
|
data/README
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
= Cherrypicker
|
2
|
-
|
3
|
-
== Description
|
4
|
-
|
5
|
-
Cherrypicker is a Ruby Gem that lets you download from; Rapidshare and Hotfile
|
6
|
-
|
7
|
-
== Installation
|
8
|
-
|
9
|
-
gem install cherrypicker
|
10
|
-
|
11
|
-
== Usage
|
12
|
-
|
13
|
-
require 'cherrypicker'
|
14
|
-
|
15
|
-
== Examples
|
16
|
-
|
17
|
-
test = Rapidshare.new("http://rapidshare.com/files/329036215/myfile.rar", "username", "password")
|
18
|
-
test.download
|
19
|
-
|
20
|
-
test2 = Hotfile.new("http://hotfile.com/dl/81103855/ee51a52/myfile.rar", "username", "password")
|
21
|
-
test2.download
|
22
|
-
|
23
|
-
check = LinkChecker.new([
|
24
|
-
"http://rapidshare.com/files/329036215/myfile.rar",
|
25
|
-
"http://rapidshare.com/files/329036764/deadfile.rar"]).status
|
26
|
-
|
27
|
-
p check
|
28
|
-
|
29
|
-
{"Alive"=>["http://rapidshare.com/files/453469831/Playaz-Sub_Zero-PLAYAZ015-WEB-2011-EGM.rar"], "Dead"=>["http://rapidshare.com/files/329036764/deadfile.rar"]}
|
30
|
-
|
31
|
-
check = LinkChecker.new([
|
32
|
-
"http://hotfile.com/dl/111044909/8410b57/Playaz-Sub_Zero-PLAYAZ015-WEB-2011-EGM.rar.html",
|
33
|
-
"http://hotfile.com/dl/111044200/3eb1174/Flux_Pavilion-Bass_Cannon-WEB-2011.rar.html"]).status
|
34
|
-
|
35
|
-
|
36
|
-
== Limitations
|
37
|
-
|
38
|
-
This is only useful if you're using premium accounts, this will not work without a valid username and password when downloading a file
|