Fixed some bugs and added quiet flag.
This commit is contained in:
+36
-7
@@ -7,6 +7,7 @@ urlTimeout = 1
|
|||||||
includes = ""
|
includes = ""
|
||||||
includesFlag = false
|
includesFlag = false
|
||||||
debug = false
|
debug = false
|
||||||
|
quiet = false
|
||||||
|
|
||||||
OptionParser.parse do |parser|
|
OptionParser.parse do |parser|
|
||||||
parser.banner = "Usage: rete [arguments] [file/urls]"
|
parser.banner = "Usage: rete [arguments] [file/urls]"
|
||||||
@@ -17,13 +18,16 @@ OptionParser.parse do |parser|
|
|||||||
urlTimeout = timeout}
|
urlTimeout = timeout}
|
||||||
parser.on("-f FILE", "--file=FILE", "Checks all urls in a txt file.") { |file|
|
parser.on("-f FILE", "--file=FILE", "Checks all urls in a txt file.") { |file|
|
||||||
urls = File.read(file)
|
urls = File.read(file)
|
||||||
checkUrlFromFile urls, output, urlTimeout.to_i, includesFlag, includes, debug
|
checkUrlFromFile urls, output, urlTimeout.to_i, includesFlag, includes, debug, quiet
|
||||||
exit 0}
|
exit 0}
|
||||||
parser.on("-o FILENAME", "--output=FILENAME", "Sets the name of the outputted file. -f flag required") {|filename|
|
parser.on("-o FILENAME", "--output=FILENAME", "Sets the name of the outputted file. -f flag required") {|filename|
|
||||||
output = filename}
|
output = filename}
|
||||||
parser.on("-v", "--version", "Displays current version of rete.") {
|
parser.on("-v", "--version", "Displays current version of rete") {
|
||||||
puts "Rete 1.1 by koffee.zip"
|
puts "Rete 1.1 by koffee.zip"
|
||||||
exit(0)}
|
exit(0)}
|
||||||
|
parser.on("-q", "--quiet", "Prints out less info") do
|
||||||
|
quiet = true
|
||||||
|
end
|
||||||
parser.on("-d", "--debug", "Debug Mode") do
|
parser.on("-d", "--debug", "Debug Mode") do
|
||||||
debug = true
|
debug = true
|
||||||
puts "Debug mode enabled!"
|
puts "Debug mode enabled!"
|
||||||
@@ -39,7 +43,7 @@ OptionParser.parse do |parser|
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug) # Sorry for the crappy method name.
|
def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug, quiet) # Sorry for the crappy method name.
|
||||||
repeat = 0
|
repeat = 0
|
||||||
working = 0
|
working = 0
|
||||||
notWorking = 0
|
notWorking = 0
|
||||||
@@ -62,6 +66,10 @@ def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug)
|
|||||||
|
|
||||||
urls = content.split("\n")
|
urls = content.split("\n")
|
||||||
|
|
||||||
|
if quiet
|
||||||
|
print "\n"
|
||||||
|
end
|
||||||
|
|
||||||
while repeat < urls.size
|
while repeat < urls.size
|
||||||
begin
|
begin
|
||||||
validUrl = Valid.url? urls[repeat]
|
validUrl = Valid.url? urls[repeat]
|
||||||
@@ -86,39 +94,58 @@ def checkUrlFromFile(content, output, urlTimeout, includesFlag, includes, debug)
|
|||||||
|
|
||||||
if includesFlag
|
if includesFlag
|
||||||
if response.body.includes?(includes)
|
if response.body.includes?(includes)
|
||||||
|
if !quiet
|
||||||
puts "#{urls[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
|
puts "#{urls[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
|
||||||
|
end
|
||||||
File.open("#{output}", "a") do |file|
|
File.open("#{output}", "a") do |file|
|
||||||
file.puts urls[repeat]
|
file.puts urls[repeat]
|
||||||
end
|
end
|
||||||
|
working += 1
|
||||||
else
|
else
|
||||||
|
if !quiet
|
||||||
puts "#{urls[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
|
puts "#{urls[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
|
||||||
end
|
end
|
||||||
|
notWorking += 1
|
||||||
|
end
|
||||||
else
|
else
|
||||||
|
if !quiet
|
||||||
puts "#{urls[repeat]} is a valid URL and works. Status code: #{response.status_code}"
|
puts "#{urls[repeat]} is a valid URL and works. Status code: #{response.status_code}"
|
||||||
|
end
|
||||||
|
working += 1
|
||||||
File.open("#{output}", "a") do |file|
|
File.open("#{output}", "a") do |file|
|
||||||
file.puts urls[repeat]
|
file.puts urls[repeat]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
if !quiet
|
||||||
puts "#{urls[repeat]} is a valid URL but does not work. Status Code: #{response.status_code}"
|
puts "#{urls[repeat]} is a valid URL but does not work. Status Code: #{response.status_code}"
|
||||||
|
end
|
||||||
notWorking += 1
|
notWorking += 1
|
||||||
end
|
end
|
||||||
rescue
|
rescue
|
||||||
|
if !quiet
|
||||||
puts "#{urls[repeat]} is a valid URL but does not exist."
|
puts "#{urls[repeat]} is a valid URL but does not exist."
|
||||||
|
end
|
||||||
notWorking += 1
|
notWorking += 1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
puts "#{urls[repeat]} is not a valid URL"
|
if !quiet
|
||||||
|
puts "#{urls[repeat]} is not a valid URL."
|
||||||
|
end
|
||||||
notWorking += 1
|
notWorking += 1
|
||||||
end
|
end
|
||||||
|
if quiet
|
||||||
|
print "\e[1A"
|
||||||
|
puts "#{repeat + 1}/#{urls.size} urls are done."
|
||||||
|
end
|
||||||
repeat += 1
|
repeat += 1
|
||||||
end
|
end
|
||||||
|
|
||||||
puts "=============================="
|
puts "=============================="
|
||||||
puts "Finished testing urls."
|
puts "Finished testing urls."
|
||||||
puts "A total of #{repeat} url(s) were tested."
|
puts "A total of #{urls.size} url(s) were tested."
|
||||||
puts "#{working}/#{repeat} url(s) were working."
|
puts "#{working}/#{urls.size} url(s) were working."
|
||||||
puts "#{notWorking}/#{repeat} url(s) were not working."
|
puts "#{notWorking}/#{urls.size} url(s) were not working."
|
||||||
exit 0
|
exit 0
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -167,8 +194,10 @@ while repeat < ARGV.size
|
|||||||
if includesFlag
|
if includesFlag
|
||||||
if response.body.includes?(includes)
|
if response.body.includes?(includes)
|
||||||
puts "#{ARGV[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
|
puts "#{ARGV[repeat]} is a valid URL, works and includes \"#{includes}\" Status code: #{response.status_code}"
|
||||||
|
working += 1
|
||||||
else
|
else
|
||||||
puts "#{ARGV[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
|
puts "#{ARGV[repeat]} is a valid URL, works but does not include \"#{includes}\" Status code: #{response.status_code}"
|
||||||
|
notWorking += 1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
puts "#{ARGV[repeat]} is a valid URL and works. Status code: #{response.status_code}"
|
puts "#{ARGV[repeat]} is a valid URL and works. Status code: #{response.status_code}"
|
||||||
|
|||||||
Reference in New Issue
Block a user