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 +4 -4
- data/.gitignore +1 -0
- data/lib/TPB/internals.rb +98 -0
- data/lib/TPB/version.rb +1 -1
- data/lib/mushin_ext_tpb.rb +2 -97
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be5ff8ed5661890ff4832e238cb84ffecaad4aff
|
4
|
+
data.tar.gz: 307d530cb6104d410103e974f0b145e87fac732c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ca317896403bfd0b73cfff393c5621b1912a7b833e3065725337a8d88c7a7d374f7bf6df65f5ba6704c8c8235f8c4ce2292d46aa5514b00b63d72d13142d6f6
|
7
|
+
data.tar.gz: 6a68583e7f236bfd91b6bc5a290d41408fe859c3787ce1a401a1a014933223333485279b0fba8c60fcef221c5b796e1e233f6079ad215aae892cf4bc13704faa
|
data/.gitignore
CHANGED
@@ -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
data/lib/mushin_ext_tpb.rb
CHANGED
@@ -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.
|
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
|