xunlei 0.0.2 → 0.0.3
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 +4 -0
- data/Rakefile +7 -0
- data/bin/xunlei +17 -1
- data/lib/xunlei/search.rb +36 -0
- data/lib/xunlei/version.rb +1 -1
- data/lib/xunlei.rb +1 -1
- data/spec/spec_helper.rb +1 -3
- data/spec/xunlei/engine_spec.rb +3 -1
- data/spec/xunlei/search_spec.rb +16 -0
- data/xunlei.gemspec +3 -0
- metadata +44 -8
data/README.md
CHANGED
data/Rakefile
CHANGED
data/bin/xunlei
CHANGED
@@ -204,5 +204,21 @@ command :config do |c|
|
|
204
204
|
end
|
205
205
|
end
|
206
206
|
|
207
|
+
command :google do |c|
|
208
|
+
c.syntax = "google KEYWORD"
|
209
|
+
c.description = "google for ed2k links using given KEYWORD"
|
210
|
+
c.option "--with OPTIONS", String, "include additional info when Googling"
|
211
|
+
c.action do |args, options|
|
212
|
+
options.default :with => nil
|
213
|
+
puts "Searching the web for #{args.join(" ")}..."
|
214
|
+
puts
|
215
|
+
search = Xunlei::Search.new
|
216
|
+
links = search.google(args, options.with)
|
217
|
+
puts
|
218
|
+
puts "#{links.count} links found."
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
207
222
|
alias_command :down, :download
|
208
|
-
alias_command :dump, :dump_tasks
|
223
|
+
alias_command :dump, :dump_tasks
|
224
|
+
alias_command :search, :google
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "watir-webdriver"
|
2
|
+
require "Nokogiri"
|
3
|
+
|
4
|
+
module Xunlei
|
5
|
+
class Search
|
6
|
+
def initialize(driver = :chrome)
|
7
|
+
@browser = Watir::Browser.new driver
|
8
|
+
end
|
9
|
+
|
10
|
+
def google(keywords, options=nil)
|
11
|
+
@browser.goto "http://www.google.com/search?q=#{[keywords, options, "ed2k"].flatten.join("+")}"
|
12
|
+
|
13
|
+
@browser.div(:id => "ires").wait_until_present
|
14
|
+
|
15
|
+
page_links = []
|
16
|
+
@browser.lis(:class => "g").each { |li| page_links << li.as.first.href }
|
17
|
+
|
18
|
+
ed2k_links = []
|
19
|
+
page_links.each do |page_link|
|
20
|
+
@browser.goto page_link
|
21
|
+
doc = Nokogiri::HTML(@browser.html)
|
22
|
+
doc.css("a").each do |link|
|
23
|
+
href = link['href']
|
24
|
+
if href =~ /ed2k:|magnet:/ && !ed2k_links.include?(href)
|
25
|
+
puts href
|
26
|
+
ed2k_links << href
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
@browser.close
|
32
|
+
|
33
|
+
ed2k_links
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/xunlei/version.rb
CHANGED
data/lib/xunlei.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/xunlei/engine_spec.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Xunlei::Search do
|
4
|
+
before(:each) do
|
5
|
+
$stdout.stub(:puts)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "Google" do
|
9
|
+
it "should find some ed2k links" do
|
10
|
+
search = Xunlei::Search.new
|
11
|
+
links = search.google("Repulsion", "720p")
|
12
|
+
|
13
|
+
links.should_not be_empty
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/xunlei.gemspec
CHANGED
@@ -19,7 +19,10 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
s.add_development_dependency "rake"
|
22
|
+
s.add_development_dependency "rspec"
|
23
|
+
s.add_development_dependency "simplecov"
|
22
24
|
|
23
25
|
s.add_runtime_dependency "watir-webdriver"
|
24
26
|
s.add_runtime_dependency "commander"
|
27
|
+
s.add_runtime_dependency "nokogiri"
|
25
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xunlei
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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-10-
|
12
|
+
date: 2011-10-21 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70191331322300 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,32 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70191331322300
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70191331321880 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70191331321880
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: simplecov
|
38
|
+
requirement: &70191331321320 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70191331321320
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: watir-webdriver
|
27
|
-
requirement: &
|
49
|
+
requirement: &70191331320640 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ! '>='
|
@@ -32,10 +54,21 @@ dependencies:
|
|
32
54
|
version: '0'
|
33
55
|
type: :runtime
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *70191331320640
|
36
58
|
- !ruby/object:Gem::Dependency
|
37
59
|
name: commander
|
38
|
-
requirement: &
|
60
|
+
requirement: &70191331319880 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70191331319880
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: &70191331319100 !ruby/object:Gem::Requirement
|
39
72
|
none: false
|
40
73
|
requirements:
|
41
74
|
- - ! '>='
|
@@ -43,7 +76,7 @@ dependencies:
|
|
43
76
|
version: '0'
|
44
77
|
type: :runtime
|
45
78
|
prerelease: false
|
46
|
-
version_requirements: *
|
79
|
+
version_requirements: *70191331319100
|
47
80
|
description: A browser script to access lixian.vip.xunlei.com tasks automatically
|
48
81
|
email:
|
49
82
|
- afu@forresty.com
|
@@ -62,9 +95,11 @@ files:
|
|
62
95
|
- bin/xunlei
|
63
96
|
- lib/xunlei.rb
|
64
97
|
- lib/xunlei/engine.rb
|
98
|
+
- lib/xunlei/search.rb
|
65
99
|
- lib/xunlei/version.rb
|
66
100
|
- spec/spec_helper.rb
|
67
101
|
- spec/xunlei/engine_spec.rb
|
102
|
+
- spec/xunlei/search_spec.rb
|
68
103
|
- xunlei.gemspec
|
69
104
|
homepage: ''
|
70
105
|
licenses: []
|
@@ -93,3 +128,4 @@ summary: A browser script to access lixian.vip.xunlei.com tasks automatically
|
|
93
128
|
test_files:
|
94
129
|
- spec/spec_helper.rb
|
95
130
|
- spec/xunlei/engine_spec.rb
|
131
|
+
- spec/xunlei/search_spec.rb
|