mushin_ext_tpb 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e46f7aa9fce3169d1f35562881b32e05fbf46e3a
4
- data.tar.gz: 4ccb6f2406c1a424ff4f03450ffd4d3ba88a71c7
3
+ metadata.gz: be5ff8ed5661890ff4832e238cb84ffecaad4aff
4
+ data.tar.gz: 307d530cb6104d410103e974f0b145e87fac732c
5
5
  SHA512:
6
- metadata.gz: 206f89dfdcff593959855363ece6a7223ed0945c306f326d47db47ee7064ce027c863e834c1cc8dfd1e19a1ef4f24db79eb1ef51b6a6132b74a5951feb5fc636
7
- data.tar.gz: a24e42684af5297c80d1cce9f36ed0e1e0fc23b2a1e09f5beae382e9b38790b4e84e04b2fd4da49249c36625da202dd8b126c0b8096c967cfc4176038a4cb77e
6
+ metadata.gz: 5ca317896403bfd0b73cfff393c5621b1912a7b833e3065725337a8d88c7a7d374f7bf6df65f5ba6704c8c8235f8c4ce2292d46aa5514b00b63d72d13142d6f6
7
+ data.tar.gz: 6a68583e7f236bfd91b6bc5a290d41408fe859c3787ce1a401a1a014933223333485279b0fba8c60fcef221c5b796e1e233f6079ad215aae892cf4bc13704faa
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /log/
@@ -0,0 +1,98 @@
1
+ require 'nokogiri'
2
+ require 'open-uri'
3
+ require 'json'
4
+ require 'httparty'
5
+ require 'open3'
6
+
7
+ module TPB
8
+ module Internal
9
+ class EmptyQuery < RuntimeError
10
+ end
11
+
12
+ def check_service(url, params)
13
+ begin
14
+ response = HTTParty.get(url, query: params, :verify => false)
15
+ begin
16
+ if response.code == 200
17
+ p "everything fine"
18
+ return true
19
+ else
20
+ p response.code
21
+ p "unexpected status code"
22
+ return false
23
+ end
24
+ rescue Timeout::Error
25
+ p "timeout reading from server"
26
+ return false
27
+ end
28
+ rescue Timeout::Error
29
+ p "timeout connecting to server"
30
+ return false
31
+ rescue SocketError
32
+ p "unknown server"
33
+ return false
34
+ end
35
+ end
36
+
37
+ def search(query)
38
+ p query
39
+ uri = "https://thepiratebay.org/search/#{URI.escape(query)}"
40
+ case check_service(uri, "")
41
+ when true
42
+ stdin, scraped, stderr = Open3.popen3("node #{File.dirname(__FILE__)}/IUAM.js #{uri}")
43
+ p scraped
44
+ doc = Nokogiri::HTML(scraped)
45
+ when false
46
+ stdin, scraped, stderr = Open3.popen3("node #{File.dirname(__FILE__)}/IUAM.js #{uri}")
47
+ p scraped
48
+ doc = Nokogiri::HTML(scraped)
49
+ else
50
+ p "tpb is not online, skip it Gracefully"
51
+ end
52
+ @results = Hash.new
53
+ @results[:torrents] = []
54
+
55
+ start_time = Time.now
56
+
57
+ doc.xpath('//*[@id="searchResult"]').search('tr').each do |row|
58
+ name = row.search('a.detLink')
59
+ next if name.empty? # Skip empty names
60
+
61
+ temp = row.search('font.detDesc').text
62
+ match = temp.match /Uploaded (.*), ULed by .*/
63
+
64
+ if !match.nil? then
65
+ description = match[1] unless match[1].nil?
66
+ upload_date, total_size = description.split(',')
67
+
68
+ total_size.slice! "Size" #removes the word 'Size'
69
+ total_size.strip! #removes empty spaces
70
+
71
+ temp = row.search('td')
72
+ seeders = temp[2].text unless temp[2].nil?
73
+ leechers = temp[3].text unless temp[3].nil?
74
+
75
+
76
+ magnet_link = ""
77
+ row.search('a').each do |a|
78
+ if a["href"].match /^magnet.*/
79
+ magnet_link = a["href"]
80
+ break
81
+ end
82
+ end
83
+ end
84
+
85
+ #TODO make the service make sure its .to_json
86
+ @results[:torrents] << { :seeders => seeders, :leechers => leechers, :upload_date => upload_date, :total_size => total_size, :name => name.text, :magnet_link => magnet_link }
87
+ end
88
+ finish_time = Time.now
89
+
90
+ @results[:results_count] = @results[:torrents].count
91
+ @results[:search_time] = finish_time - start_time
92
+
93
+ #TODO use logger instead
94
+ puts JSON.pretty_generate @results
95
+ @results
96
+ end
97
+ end
98
+ end
data/lib/TPB/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TPB
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,103 +1,8 @@
1
1
  require 'mushin'
2
- require 'nokogiri'
3
- require 'open-uri'
4
- require 'json'
5
- require 'httparty'
6
- require 'open3'
7
-
8
2
  require_relative 'TPB/version'
9
-
3
+ require_relative 'TPB/internals'
10
4
 
11
5
  module TPB
12
- module Internal
13
- class EmptyQuery < RuntimeError
14
- end
15
-
16
- def check_service(url, params)
17
- begin
18
- response = HTTParty.get(url, query: params, :verify => false)
19
- begin
20
- if response.code == 200
21
- p "everything fine"
22
- return true
23
- else
24
- p response.code
25
- p "unexpected status code"
26
- return false
27
- end
28
- rescue Timeout::Error
29
- p "timeout reading from server"
30
- return false
31
- end
32
- rescue Timeout::Error
33
- p "timeout connecting to server"
34
- return false
35
- rescue SocketError
36
- p "unknown server"
37
- return false
38
- end
39
- end
40
-
41
- def search(query)
42
- p query
43
- uri = "https://thepiratebay.org/search/#{URI.escape(query)}"
44
- case check_service(uri, "")
45
- when true
46
- stdin, scraped, stderr = Open3.popen3("node #{File.dirname(__FILE__)}/TPB/IUAM.js #{uri}")
47
- doc = Nokogiri::HTML(scraped)
48
- when false
49
- stdin, scraped, stderr = Open3.popen3("node #{File.dirname(__FILE__)}/TPB/IUAM.js #{uri}")
50
- doc = Nokogiri::HTML(scraped)
51
- else
52
- p "tpb is not online, skip it Gracefully"
53
- end
54
- @results = Hash.new
55
- @results[:torrents] = []
56
-
57
- start_time = Time.now
58
-
59
- doc.xpath('//*[@id="searchResult"]').search('tr').each do |row|
60
- name = row.search('a.detLink')
61
- next if name.empty? # Skip empty names
62
-
63
- temp = row.search('font.detDesc').text
64
- match = temp.match /Uploaded (.*), ULed by .*/
65
-
66
- if !match.nil? then
67
- description = match[1] unless match[1].nil?
68
- upload_date, total_size = description.split(',')
69
-
70
- total_size.slice! "Size" #removes the word 'Size'
71
- total_size.strip! #removes empty spaces
72
-
73
- temp = row.search('td')
74
- seeders = temp[2].text unless temp[2].nil?
75
- leechers = temp[3].text unless temp[3].nil?
76
-
77
-
78
- magnet_link = ""
79
- row.search('a').each do |a|
80
- if a["href"].match /^magnet.*/
81
- magnet_link = a["href"]
82
- break
83
- end
84
- end
85
- end
86
-
87
- #TODO make the service make sure its .to_json
88
- @results[:torrents] << { :seeders => seeders, :leechers => leechers, :upload_date => upload_date, :total_size => total_size, :name => name.text, :magnet_link => magnet_link }
89
- end
90
- finish_time = Time.now
91
-
92
- @results[:results_count] = @results[:torrents].count
93
- @results[:search_time] = finish_time - start_time
94
-
95
- #TODO use logger instead
96
- puts JSON.pretty_generate @results
97
- @results
98
- end
99
- end
100
-
101
6
  class Ext
102
7
  using Mushin::Ext
103
8
  include Internal
@@ -117,7 +22,7 @@ module TPB
117
22
 
118
23
  case
119
24
  when env[:query].nil?, env[:query].empty?
120
- p "empty is no good"
25
+ p "empty query is no good"
121
26
  else
122
27
  results = search(env[:query])
123
28
  env[:tpbbot] = results
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mushin_ext_tpb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - zotherstupidguy
@@ -84,6 +84,7 @@ files:
84
84
  - bin/console
85
85
  - bin/setup
86
86
  - lib/TPB/IUAM.js
87
+ - lib/TPB/internals.rb
87
88
  - lib/TPB/version.rb
88
89
  - lib/mushin_ext_tpb.rb
89
90
  homepage: http://hackspree.com