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 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