awesome_bot 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![Build Status](https://travis-ci.org/flowjs/ng-flow.svg)](https://travis-ci.org/flowjs/ng-flow) [![Coverage Status](https://coveralls.io/repos/flowjs/ng-flow/badge.svg?branch=master&service=github)](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
|