awesome_bot 1.5.0 → 1.5.1
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/.travis.yml +1 -1
- data/CHANGELOG.md +8 -2
- data/bin/assets/test-parse +2 -0
- data/lib/awesome_bot/check.rb +11 -11
- data/lib/awesome_bot/cli.rb +2 -1
- data/lib/awesome_bot/links.rb +3 -1
- data/lib/awesome_bot/result.rb +4 -3
- data/lib/awesome_bot/statuses.rb +5 -0
- data/lib/awesome_bot/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86f47522c8abd6392f288ac1b07c0ad82304a593
|
4
|
+
data.tar.gz: 91e754b597dbf52696bf580c482097a01d59b9bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43b2abdd184fce42b28121d65171720deafd55db92d4b6c75093acb0a526ca83309af7564da7efa26d06a656b2501ab579f56d169f049ede2843c3cc87ea1255
|
7
|
+
data.tar.gz: 987906144e1c1534d905433bc0ee44a616358197b4a589aabbaf2f3bf0b73e276fa802f4d03e0a9ab90ece70b19585bf6cb586db71384973125c77bd5d22437e
|
data/.travis.yml
CHANGED
@@ -7,7 +7,7 @@ script:
|
|
7
7
|
- awesome_bot
|
8
8
|
- awesome_bot bin/assets/test-no-issues
|
9
9
|
- awesome_bot bin/assets/test-no-links
|
10
|
-
- awesome_bot bin/assets/test-parse
|
10
|
+
- awesome_bot bin/assets/test-parse --white-list coveralls,travis-ci
|
11
11
|
- awesome_bot bin/assets/test-dupe --allow-dupe
|
12
12
|
- awesome_bot bin/assets/test-timeout --allow-timeout --set-timeout 1
|
13
13
|
- awesome_bot bin/assets/test-timeout-and-redirect --allow-timeout --set-timeout 1 --allow-redirect
|
data/CHANGELOG.md
CHANGED
@@ -56,14 +56,20 @@
|
|
56
56
|
|
57
57
|
# 1.5.0
|
58
58
|
|
59
|
-
- [output] display url redirect location, by [Colby M. White]
|
59
|
+
- [output] display url redirect location, by [Colby M. White][]
|
60
60
|
- [output] update logic for number of unique links
|
61
61
|
- [output] standardize indent
|
62
|
-
- rename `Result` `rejected` to `links_white_listed`
|
62
|
+
- rename `Result` `rejected` to `links_white_listed`
|
63
|
+
|
64
|
+
# 1.5.1
|
65
|
+
|
66
|
+
- [fix] link parsing error with markdown badge
|
67
|
+
- improve code, suggested by [Colby M. White][]
|
63
68
|
|
64
69
|
## Contact
|
65
70
|
|
66
71
|
- [github.com/dkhamsing](https://github.com/dkhamsing)
|
67
72
|
- [twitter.com/dkhamsing](https://twitter.com/dkhamsing)
|
68
73
|
|
74
|
+
[Colby M. White]:https://github.com/colbywhite
|
69
75
|
[R.I. Pienaar]:https://github.com/ripienaar
|
data/bin/assets/test-parse
CHANGED
@@ -1,2 +1,4 @@
|
|
1
1
|
[Eddystone](https://en.wikipedia.org/wiki/Eddystone_(Google))
|
2
2
|
her [dockerfiles](https://github.com/jfrazelle/dockerfiles))
|
3
|
+
|
4
|
+
# ng-flow [](https://travis-ci.org/flowjs/ng-flow) [](https://coveralls.io/github/flowjs/ng-flow?branch=master)
|
data/lib/awesome_bot/check.rb
CHANGED
@@ -9,9 +9,17 @@ module AwesomeBot
|
|
9
9
|
|
10
10
|
STATUS_OK = '✓'
|
11
11
|
STATUS_OTHER = 'x'
|
12
|
-
STATUS_REDIRECT = '→'
|
12
|
+
STATUS_REDIRECT = '→'
|
13
13
|
|
14
14
|
class << self
|
15
|
+
def log_status(s, log)
|
16
|
+
if status_is_redirected? s
|
17
|
+
log.addp STATUS_REDIRECT
|
18
|
+
else
|
19
|
+
log.addp(s == 200 ? STATUS_OK : STATUS_OTHER)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
15
23
|
def check(content, white_listed = nil, skip_dupe = false, log = Log.new)
|
16
24
|
log.add '> Will allow duplicate links' if skip_dupe
|
17
25
|
|
@@ -34,11 +42,7 @@ module AwesomeBot
|
|
34
42
|
log.addp 'Checking URLs: ' if r.links.count > 0
|
35
43
|
r.status =
|
36
44
|
statuses(r.links.uniq, NUMBER_OF_THREADS) do |s|
|
37
|
-
|
38
|
-
log.addp STATUS_REDIRECT
|
39
|
-
else
|
40
|
-
log.addp(s == 200 ? STATUS_OK : STATUS_OTHER)
|
41
|
-
end
|
45
|
+
log_status s, log
|
42
46
|
end
|
43
47
|
log.add ''
|
44
48
|
|
@@ -47,11 +51,7 @@ module AwesomeBot
|
|
47
51
|
log.addp 'Checking white listed URLs: '
|
48
52
|
r.white_listed =
|
49
53
|
statuses(r.links_white_listed.uniq, NUMBER_OF_THREADS, true) do |s|
|
50
|
-
|
51
|
-
log.addp STATUS_REDIRECT
|
52
|
-
else
|
53
|
-
log.addp(s == 200 ? STATUS_OK : STATUS_OTHER)
|
54
|
-
end
|
54
|
+
log_status s, log
|
55
55
|
end
|
56
56
|
log.add ''
|
57
57
|
|
data/lib/awesome_bot/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'awesome_bot/check'
|
2
2
|
require 'awesome_bot/log'
|
3
3
|
require 'awesome_bot/result'
|
4
|
+
require 'awesome_bot/statuses'
|
4
5
|
require 'awesome_bot/version'
|
5
6
|
|
6
7
|
# Command line interface
|
@@ -24,7 +25,7 @@ module AwesomeBot
|
|
24
25
|
print "#{s} " unless s == STATUS_ERROR
|
25
26
|
print "#{x['url']}"
|
26
27
|
print " #{x['error']}" if s == STATUS_ERROR
|
27
|
-
print " #{STATUS_REDIRECT} #{x['headers']['location']}" if
|
28
|
+
print " #{STATUS_REDIRECT} #{x['headers']['location']}" if status_is_redirected? s
|
28
29
|
puts ''
|
29
30
|
end
|
30
31
|
|
data/lib/awesome_bot/links.rb
CHANGED
@@ -9,7 +9,9 @@ module AwesomeBot
|
|
9
9
|
x.gsub(/'.*/, '').gsub(/,.*/, '').gsub('/:', '/')
|
10
10
|
end
|
11
11
|
.map do |x|
|
12
|
-
if
|
12
|
+
if x.include? ')]'
|
13
|
+
x.gsub /\)\].*/, ''
|
14
|
+
elsif (x.scan(')').count == 2) && (x.scan('(').count == 1)
|
13
15
|
x.gsub(/\)\).*/, ')')
|
14
16
|
elsif x.scan(')').count > 0
|
15
17
|
x.gsub(/\).*/, '')
|
data/lib/awesome_bot/result.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require 'awesome_bot/white_list'
|
2
|
-
|
3
1
|
# Result
|
4
2
|
module AwesomeBot
|
3
|
+
require 'awesome_bot/statuses'
|
4
|
+
require 'awesome_bot/white_list'
|
5
|
+
|
5
6
|
# Result
|
6
7
|
class Result
|
7
8
|
attr_accessor :dupes
|
@@ -23,7 +24,7 @@ module AwesomeBot
|
|
23
24
|
|
24
25
|
def statuses_issues(allow_redirects = false, allow_timeouts = false)
|
25
26
|
s = status.select { |x| x['status'] != 200 }
|
26
|
-
r = s.reject { |x|
|
27
|
+
r = s.reject { |x| AwesomeBot.status_is_redirected? x['status'] }
|
27
28
|
t = s.reject do |x|
|
28
29
|
(x['status'] == -1) && ((x['error'].message == 'Net::ReadTimeout') || (x['error'].message == 'execution expired'))
|
29
30
|
end
|
data/lib/awesome_bot/statuses.rb
CHANGED
@@ -18,6 +18,10 @@ module AwesomeBot
|
|
18
18
|
head ? net_head_status(url) : net_get_status(url)
|
19
19
|
end
|
20
20
|
|
21
|
+
def status_is_redirected?(status)
|
22
|
+
(status > 299) && (status < 400)
|
23
|
+
end
|
24
|
+
|
21
25
|
def statuses(links, threads, head = false)
|
22
26
|
statuses = []
|
23
27
|
Parallel.each(links, in_threads: threads) do |u|
|
@@ -25,6 +29,7 @@ module AwesomeBot
|
|
25
29
|
response = net_status u, head
|
26
30
|
status = response.status
|
27
31
|
headers = response.headers
|
32
|
+
error = nil # nil (success)
|
28
33
|
rescue => e
|
29
34
|
status = STATUS_ERROR
|
30
35
|
headers = {}
|
data/lib/awesome_bot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awesome_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Khamsing
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|