xunlei 0.0.9 → 0.0.10
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/lib/xunlei/engine.rb +30 -30
- data/lib/xunlei/helpers/cli_helper.rb +1 -1
- data/lib/xunlei/search.rb +1 -1
- data/lib/xunlei/version.rb +1 -1
- metadata +16 -16
data/lib/xunlei/engine.rb
CHANGED
@@ -9,15 +9,15 @@ module Xunlei
|
|
9
9
|
@browser.text_field(:id => "u").when_present.set(username)
|
10
10
|
@browser.text_field(:id => "p_show").when_present.set(password)
|
11
11
|
@browser.button(:id => "button_submit4reg").when_present.click
|
12
|
-
|
12
|
+
|
13
13
|
# temp fix for stupid cloud VOD popup
|
14
14
|
wait_until_all_loaded
|
15
15
|
@browser.div(:class => "p_rw_pop p_sc_pop p_yuntips").p(:class => 'p_btm_aline').as.first.when_present.click
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def dump_cookies
|
19
19
|
wait_until_all_loaded
|
20
|
-
|
20
|
+
|
21
21
|
cookies = []
|
22
22
|
@browser.driver.manage.all_cookies.each do |cookie|
|
23
23
|
domain = cookie[:domain]
|
@@ -27,31 +27,31 @@ module Xunlei
|
|
27
27
|
value = cookie[:value]
|
28
28
|
cookies << "#{domain}\tTRUE\t#{path}\tFALSE\t#{expires}\t#{name}\t#{value}\n"
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
cookies
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
def dump_tasks
|
35
35
|
all_files = []
|
36
|
-
|
36
|
+
|
37
37
|
begin
|
38
38
|
all_files += process_current_page
|
39
39
|
end while next_page
|
40
|
-
|
40
|
+
|
41
41
|
all_files
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def add_task(target_address)
|
45
45
|
puts "Adding new task..."
|
46
46
|
# open('|pbcopy', 'w') { |io| io << target_address }
|
47
|
-
|
47
|
+
|
48
48
|
@browser.execute_script("add_task_new(0)")
|
49
|
-
|
49
|
+
|
50
50
|
@browser.text_field(:id => 'task_url').wait_until_present
|
51
51
|
|
52
52
|
# @browser.send_keys [:command, 'v']
|
53
53
|
@browser.execute_script("document.getElementById('task_url').value = '#{target_address}'")
|
54
|
-
|
54
|
+
|
55
55
|
puts "Task URL = \"#{target_address}\""
|
56
56
|
expire_count = 0
|
57
57
|
sleep(2.0)
|
@@ -66,44 +66,44 @@ module Xunlei
|
|
66
66
|
puts "Timed out, the button is unavailable."
|
67
67
|
end
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
70
|
def stop
|
71
71
|
@browser.close
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
private
|
75
|
-
|
75
|
+
|
76
76
|
def wait_until_all_loaded
|
77
77
|
get_task_list
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
def get_task_list
|
81
81
|
task_list = @browser.div(:id => "rowbox_list")
|
82
82
|
task_list.wait_until_present
|
83
83
|
task_list
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
def next_page
|
87
87
|
next_li = @browser.li(:class => "next")
|
88
|
-
|
88
|
+
|
89
89
|
return false unless next_li.present?
|
90
|
-
|
90
|
+
|
91
91
|
next_li.as.first.click
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
def process_current_page
|
95
95
|
get_task_list.divs(:class => "rw_inter").inject([]) do |all_files, task_div|
|
96
96
|
all_files += process_task(task_div)
|
97
97
|
end
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
def process_task(task_div)
|
101
101
|
task_files = []
|
102
|
-
|
102
|
+
|
103
103
|
task_div.wait_until_present
|
104
|
-
|
104
|
+
|
105
105
|
@browser.execute_script("document.getElementById('#{task_div.parent.id}').scrollIntoView()")
|
106
|
-
|
106
|
+
|
107
107
|
if task_is_ready?(task_div)
|
108
108
|
# puts "task is ready"
|
109
109
|
task_div.click
|
@@ -117,28 +117,28 @@ module Xunlei
|
|
117
117
|
else
|
118
118
|
# still downloading
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
task_files
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
124
|
def task_is_ready?(task_div)
|
125
125
|
task_div.em(:class => "loadnum").text == "100%"
|
126
126
|
end
|
127
|
-
|
127
|
+
|
128
128
|
def process_normal_task(task_div)
|
129
129
|
normal_task_a = task_div.span(:class => "namelink").as.first
|
130
130
|
task_id = task_div.parent.id.gsub(/\D+/, "")
|
131
131
|
normal_task_input = task_div.input(:id => "dl_url" + task_id)
|
132
132
|
{ :name => normal_task_a.text.gsub(/'|\\/,""), :url => normal_task_input.value, :size => task_div.span(:id => "size#{task_id}").text }
|
133
133
|
end
|
134
|
-
|
134
|
+
|
135
135
|
def process_bt_task(task_div)
|
136
136
|
task_files = []
|
137
137
|
task_div.a(:class => "rwbtn ic_open").when_present.click
|
138
138
|
|
139
139
|
folder_list = @browser.div(:id => "rwbox_bt_list")
|
140
140
|
folder_list.wait_until_present
|
141
|
-
|
141
|
+
|
142
142
|
index = 0
|
143
143
|
folder_list.spans(:class => "namelink").each do |span|
|
144
144
|
s = span.spans.first
|
@@ -148,10 +148,10 @@ module Xunlei
|
|
148
148
|
end
|
149
149
|
|
150
150
|
go_back_from_bt_task
|
151
|
-
|
151
|
+
|
152
152
|
task_files
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
def go_back_from_bt_task
|
156
156
|
back_div = @browser.div(:id => "view_bt_list_nav")
|
157
157
|
back_div.wait_until_present
|
@@ -93,7 +93,7 @@ module Xunlei
|
|
93
93
|
unless system("which chromedriver > /dev/null 2>&1")
|
94
94
|
puts "chromedriver not found in your PATH"
|
95
95
|
if agree("Would you like me to try download it for you? (yes or no)")
|
96
|
-
if system("wget 'http://chromium.googlecode.com/files/
|
96
|
+
if system("wget 'http://chromium.googlecode.com/files/chromedriver_mac_18.0.1022.0.zip' -O #{chromedriver_zip_name}")
|
97
97
|
if system("unzip #{chromedriver_zip_name}")
|
98
98
|
puts "moving chromedriver to /usr/local/bin ..."
|
99
99
|
system("mv -v chromedriver /usr/local/bin")
|
data/lib/xunlei/search.rb
CHANGED
@@ -43,7 +43,7 @@ module Xunlei
|
|
43
43
|
q += "+-" + options.without unless options.without.nil?
|
44
44
|
|
45
45
|
search_result = Nokogiri::HTML(open("#{prefix}#{q}") { |page| page.read })
|
46
|
-
page_links = search_result.css(".g h3 a").map { |a| a['href'] }[0, limit]
|
46
|
+
page_links = search_result.css(".g h3 a").map { |a| "http://www.google.com" + a['href'] }[0, limit]
|
47
47
|
|
48
48
|
ed2k_links = []
|
49
49
|
|
data/lib/xunlei/version.rb
CHANGED
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.10
|
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: 2012-02-
|
12
|
+
date: 2012-02-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70276726737940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70276726737940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70276726737520 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70276726737520
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: simplecov
|
38
|
-
requirement: &
|
38
|
+
requirement: &70276726737100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70276726737100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: watir-webdriver
|
49
|
-
requirement: &
|
49
|
+
requirement: &70276726736680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70276726736680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: commander
|
60
|
-
requirement: &
|
60
|
+
requirement: &70276726736260 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70276726736260
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: nokogiri
|
71
|
-
requirement: &
|
71
|
+
requirement: &70276726735840 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70276726735840
|
80
80
|
description: A browser script to access lixian.vip.xunlei.com tasks automatically
|
81
81
|
email:
|
82
82
|
- afu@forresty.com
|
@@ -116,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
116
|
version: '0'
|
117
117
|
segments:
|
118
118
|
- 0
|
119
|
-
hash:
|
119
|
+
hash: 2988455475934725086
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
version: '0'
|
126
126
|
segments:
|
127
127
|
- 0
|
128
|
-
hash:
|
128
|
+
hash: 2988455475934725086
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project: xunlei
|
131
131
|
rubygems_version: 1.8.11
|