xunlei 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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/chromedriver_mac_16.0.902.0.zip' -O #{chromedriver_zip_name}")
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
 
@@ -1,3 +1,3 @@
1
1
  module Xunlei
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  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.9
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-09 00:00:00.000000000Z
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: &70294552163660 !ruby/object:Gem::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: *70294552163660
24
+ version_requirements: *70276726737940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70294552163200 !ruby/object:Gem::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: *70294552163200
35
+ version_requirements: *70276726737520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: simplecov
38
- requirement: &70294552162180 !ruby/object:Gem::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: *70294552162180
46
+ version_requirements: *70276726737100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: watir-webdriver
49
- requirement: &70294552158400 !ruby/object:Gem::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: *70294552158400
57
+ version_requirements: *70276726736680
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: commander
60
- requirement: &70294552157820 !ruby/object:Gem::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: *70294552157820
68
+ version_requirements: *70276726736260
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nokogiri
71
- requirement: &70294552157200 !ruby/object:Gem::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: *70294552157200
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: 2673392163945726222
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: 2673392163945726222
128
+ hash: 2988455475934725086
129
129
  requirements: []
130
130
  rubyforge_project: xunlei
131
131
  rubygems_version: 1.8.11